ABI change in cyrus sasl 2.1.25

Ondřej Surý ondrej at sury.org
Tue May 29 11:11:18 EDT 2012


I don't think 2.1.25 bumped SONAME, so the bug still applies.

As for the #defines - they are related to API (e.g. compile time), but already compiled programs linked against cyrus-sasl (e.g. runtime) will experience the breakage.

Ondřej Surý

On 29. 5. 2012, at 16:57, Alexey Melnikov <alexey.melnikov at isode.com> wrote:

> On 29/05/2012 15:54, Ondřej Surý wrote:
>> Just quick reply from my phone.
>> 
>> No additional breakage, I just opened the bug after some longer time and didn't realize it applies to 2.1.24.
> 
> Ok, please double check. I will do 2.1.26 anyway, but it would be good to close the bug if it no longer applies.
> 
>> Ondřej Surý
>> 
>> On 29. 5. 2012, at 16:46, Alexey Melnikov<alexey.melnikov at isode.com>  wrote:
>> 
>>> On 29/05/2012 15:15, Ondřej Surý wrote:
>>>> Hi,
>>> Hi Ondřej,
>>> 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
>>>> later.
>>>> 
>>>> So it would be really nice if you could just release 2.1.26 or
>>>> 2.1.25.1 (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:
>>> 
>>> In saslplug.h:
>>> 
>>> #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.
>>> 
>>> Best Regards,
>>> Alexey
>>> 
> 


More information about the Cyrus-devel mailing list