cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: size of curl_off_t in configure

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Mon, 25 Aug 2008 09:55:50 +0200 (CEST)

On Mon, 25 Aug 2008, Yang Tse wrote:

> I'm not absolutely sure that we can certainly detect if soname bump is
> required with tests which only affect 7.19.0, after all 7.18.2 could have
> been built with LFS enabled or not.

No, we can't. My preferred approach is rather this:

A) Document clearly for what situations there will be an ABI breakage. In the
    README.curl_off_t file.

B) Try to detect as many situations as possible from above, but I can't think
    of many others than exactly the case when off_t and curl_off_t differ in
    size.

> I think that the _real_ check would involve checking discrepancies in size
> of both curl_off_t and off_t between 7.19.0 and an already built 7.18.2

Yes, although strictly that would be the new >= 7.19.0 (as this will still be
valid with all future releases until we do a real soname bump) and an already
built/used < 7.19.0 (as the previous version could very well be older than
7.18.2).

> I wonder if all this 'might don't need a soname bump' is even worse in the
> long run than a true 'official' breakage and providing the means to now if
> they can safely symlink the old to the new library.

I'm still in the camp that avoids doing the soname bump all over just because
we can be and will be binary compatible for all major platforms and
architectures, so the vast majority of all users will not have any problems
with simply upgrading to 7.19.0. On the contrary, those will have less
problems then since the curl_off_t size problem (it requiring the right set of
defines to get the right size) for apps will be gone.

Soname bumps make both us and the users of libcurl suffer. Examples:

* some LSB people ditched the efforts trying to get libcurl into LSB since we
   happened to do the previous soname while they were having a go at it. Had we
   not done the bump, chances would've been bigger libcurl would've made it
   further into that process.

* the recent flash 10 on Linux debacle. See my two blog posts:
   http://daniel.haxx.se/blog/2008/08/13/flash-10-uses-native-libcurl/
   http://daniel.haxx.se/blog/2008/08/22/the-hack-will-still-be-useful/
   I'm quite sure flash isn't the only application that rather use the system
   libcurl without going through hoops, even if they ship as binary-only.

* lots of Linux distros now provide more or less crazy solutions to offer so.3
   and so.4 versions of libcurl. Most of them provide the same lib for both
   sonames (which breaks some so.3-using apps in mysterious ways).

... and I could probably go on. Yes, all those are fully understandable and
logical effects of soname bumps and we are of course allowed (and assumed) to
do them as often as we deem necessary, but I think we will get happier users
by keeping them to a minimum.

-- 
  / daniel.haxx.se
Received on 2008-08-25