Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set the shared object version (SOVERSION) to only the major.minor version #978

Merged

Conversation

Conan-Kudo
Copy link
Contributor

@Conan-Kudo Conan-Kudo commented Sep 13, 2023

This declares that the library ABI is intended to be backward compatible to older versions of the same major.minor version.

@Conan-Kudo
Copy link
Contributor Author

@paullouisageneau Please merge this if this is your intent. I would appreciate it if it was, because that makes packaging it in Linux distributions far less painful.

@Conan-Kudo
Copy link
Contributor Author

@paullouisageneau To explain this more concretely: if your intent is that you don't intend to regularly break the public API of this library, then this change is fine.

The Application Binary Interface (ABI) is constructed out of the compiler symbol generation based on the function signatures that exist for all publicly accessible classes and headers that define "plain" functions that aren't wrapped in a class.

So ultimately, if you don't intend to regularly make changes to the API where programs have to change how they use your library, this should be okay to land.

@paullouisageneau
Copy link
Owner

@Conan-Kudo Thank you for the PR!

I have a concern as libdatachannel is still in 0.X and ABI compatibility is not enforced between minor version numbers since the API can change (it is between build version numbers). Starting from 1.X, which hopefully will be released in a few months, I plan to enforce ABI compatibility between major versions. Isn't this an issue? Shouldn't shared object version use major and minor instead for now?

This declares that the library ABI is intended to be backward
compatible to older versions of the same major.minor version.
@Conan-Kudo
Copy link
Contributor Author

Shouldn't shared object version use major and minor instead for now?

Yes, you're quite right! I've updated it accordingly.

@Conan-Kudo Conan-Kudo changed the title Set the shared object version (SOVERSION) to only the major version Set the shared object version (SOVERSION) to only the major.minor version Sep 15, 2023
@paullouisageneau paullouisageneau merged commit 793f4b5 into paullouisageneau:master Sep 15, 2023
11 checks passed
@Conan-Kudo Conan-Kudo deleted the set-soversion-to-vermajor branch September 15, 2023 10:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants