[libical] ABI stability

Allen Winter winter at kde.org
Sat Nov 23 07:12:42 PST 2013


On Friday, November 22, 2013 10:07:00 AM Patrick Ohly wrote:
> Hello!
> 
> The recent issue with inconsistent ABIs in Fedora [1,2] because enums
> were assigned randomly in the header files makes me wonder: if these
> header files contain enums sorted alphabetical, as they do now, how can
> new entries be added?
> 
> It looks to me that every small change, like adding a new parameter,
> will now lead to a new ABI for libical. In case it is not obvious: this
> is very bad for compatibility of binaries with different Linux.
> SyncEvolution binaries from syncevolution.org currently no longer work
> with distros which switched to libical 1.0 because the soname changed
> from libical.so.0 to libical.so.1.
> 
> Can this be avoided in the future?
> 
> For example, can the header file be considered frozen again from now on,
> with new enum values added manually at the end of each enumeration? The
> rest of the code could still be auto-generated during each compile run,
> just the header files need to remain the same.
> 
> [1] http://sourceforge.net/p/freeassociation/code/1156/
> [2] http://sourceforge.net/p/freeassociation/code/1156/
> 
But this was a major release, so reasonable and not unexpected for ABI to break in a major release.

Of course we need to find a way to ensure ABI.

Now I worried that ABI is broken again for people who rebuilt against 1.0.0
and then install the next release.  So I'm thinking of reverting 1156





More information about the libical-interest mailing list