[libical] ABI stability

Patrick Ohly patrick.ohly at gmx.de
Fri Nov 22 01:07:00 PST 2013


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/

-- 
Bye, Patrick Ohly
--  
Patrick.Ohly at gmx.de
http://www.estamos.de/






More information about the libical-interest mailing list