cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: 7.20.0: soname again :-(

From: Domenico Andreoli <cavokz_at_gmail.com>
Date: Fri, 12 Feb 2010 17:19:12 +0100

On Fri, Feb 12, 2010 at 04:27:25PM +0100, Daniel Stenberg wrote:
> On Fri, 12 Feb 2010, Patrick Monnerat wrote:
>
> >Totally agreed. The goal of this numbering is to avoid a runtime
> >use of a library that is not compatible with the one used at link
> >time.
>
> Exactly. And my reasoning was this: we added CURLOPT_* options in
> 7.20.0 that didn't exist before. So when an app comes along and
> starts to use them. Now, that app cannot just go back and use an
> older lib anymore. They are not compatible in that sense.
>
> Apps that only use older options can of course switch to an older
> version easily, but we can't really make a distiction with this kind
> of API. If we would have an API with plain function calls instead of
> setopt() options, it would make the case crystal clear.

What is also crystal clear is that curl_easy_setopt() has a return
value which should be checked. A good application could even nicely
degrade its functionalities on the base of (un)successfully set options.

I am the first to bump shlibs version in debian packaging in case of
doubt, just to stay on safe-side, but this is nothing compared to a full
soname transition. Curl is not a toy any more, it is widely used and a
soname transition is nowdays very painful in any major distribution.
Debian has alread skipped last one and surely would skip this one
because of this reason.

Daniel, as upstream developer you cannot act this way any more, major
version must not change until clearly and inevitably required. Ulrich
Drepper wrote an excellent paper on this topic, I'm pretty sure you
missed it: http://people.redhat.com/drepper/goodpractice.pdf

Regards,
Domenico

-----[ Domenico Andreoli, aka cavok
 --[ http://www.dandreoli.com/gpgkey.asc
   ---[ 3A0F 2F80 F79C 678A 8936 4FEE 0677 9033 A20E BC50
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2010-02-12