ABI change in cyrus sasl 2.1.25
alexey.melnikov at isode.com
Tue May 29 10:46:03 EDT 2012
On 29/05/2012 15:15, Ondřej Surý wrote:
Coincidentally I just started discussing your bug with Ken 15 mins ago.
> [speaking about: https://bugzilla.cyrusimap.org/show_bug.cgi?id=3692]
> is there a timeframe for releasing 2.1.26?
> The ABI change should have changed and this is causing some havoc in
> OpenLDAP runtimes, thus it would be really nice to have fixed version
> with bumped SONAME. I don't want to bump SONAME solely in Debian
> package since it would break compatibility across the ecosystems, but
> we are discussing doing that even though it will create some problems
> So it would be really nice if you could just release 2.1.26 or
> 22.214.171.124 (whatever suits you) with bumped SONAME.
Reading the bug you submitted (and references), it looks like the
original problem was against 2.1.24. 2.1.25 was released since then.
Was there another instance of an incompatible ABI change since then?
As far as changing ABIs (or adding new APIs) is concerned:
#define SASL_UTILS_VERSION 5
is bumped when sasl_utils structure is changed incompatibly (e.g.
addition of new struct members which will grow the struct size. Changing
a "spare_XXX" doesn't count, as long as such members are optional).
#define SASL_CLIENT_PLUG_VERSION 4
is bumped when the "struct sasl_client_plug" or related functions change.
#define SASL_SERVER_PLUG_VERSION 5
is bumped when "struct sasl_server_plug" or related functions change.
#define SASL_CANONUSER_PLUG_VERSION 5
is bumped when "struct sasl_canonuser" or related functions change.
#define SASL_AUXPROP_PLUG_VERSION 9
Is bumped on any auxprop_* API changes. I have updated this version when
I changed auxprop_lookup.
And then there is the version number in sasl.h, which should change when
there are any other semantics changes or changes to APIs (including addition
of new functions).
As far as 2.1.26 is concerned. I've started on it now. There are a
couple of blocker bugs that I would like to resolve (1 of them is under
control and just needs testing). If I am lucky, this will take about 2
weeks to wrap up.
More information about the Cyrus-devel