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

Please consider versioning the library and the ABI #9

Open
musicinmybrain opened this issue Apr 22, 2024 · 1 comment
Open

Please consider versioning the library and the ABI #9

musicinmybrain opened this issue Apr 22, 2024 · 1 comment

Comments

@musicinmybrain
Copy link

musicinmybrain commented Apr 22, 2024

Please consider versioning the project as a whole and tagging releases. This would make things much easier for anyone packaging and redistributing animx. (I want to add an animx package to Fedora Linux.)

Similarly, it would be really helpful if shared library versioning could be added. CMake makes this pretty easy. Typically, especially for projects with C APIs/ABIs, the ABI version is a single integer that starts at 1 and is incremented each time a backwards-incompatible ABI change is made (like removing a function, or changing the type of one of its arguments). The value is encoded in the SONAME field of the shared library file using a linker flag, e.g. N=1; gcc $CFLAGS -Wl,-soname,libfoo.so.$N -o libfoo.so.$N. Then an unversioned symbolic link would be created that points at the versioned shared library. Again, CMake can handle all of this. Some projects with C++ APIs/ABIs use dotted SONAME versions, e.g. library version 1.2.3 has SONAME version 1.2 if ABI stability is guaranteed in patch releases. Others can’t guarantee any ABI stability at all, and use the entire version number as the SONAME version. This is still useful, as long as it reflects reality.

All of this is important for packaging animx in Linux distributions. In the case of Fedora, we can add the SONAME version downstream if necessary, but one managed upstream is much better, as it benefits everyone and ensures consistency across distributions.

@musicinmybrain
Copy link
Author

(I want to add an animx package to Fedora Linux.)

I have changed my mind, for the time being, but this request would still be useful for anyone who wants to package AnimX.

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

No branches or pull requests

1 participant