ABI change in cyrus sasl 2.1.25

Alexey Melnikov alexey.melnikov at isode.com
Tue May 29 11:25:03 EDT 2012


On 29/05/2012 16:11, Ondřej Surý wrote:
> I don't think 2.1.25 bumped SONAME, so the bug still applies.

Please explain what "bumping SONAME" means. I've asked Ken and neither 
of us understands.

> 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