[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: curl 7.14.0-5: OpenSSL vs GnuTLS is still a problem



On Thu, Aug 18, 2005 at 11:00:41AM +0200, Domenico Andreoli wrote:
>   with curl 7.14.0-5 currently in incoming, i added two new packages
> libcurl3-gnutls and libcurl3-gnutls-dev. libcurl3 and libcurl3-gnutls
> conflict each other since both install libcurl.so.3.0.0 in /usr/lib/.

If the problem is that using gnutls or openssl changes the ABI for libcurl,
then they should have different sonames. (I'd expect the newer one, gnuTLS,
would get its own soname, so that existing packages work, and packages can
optionally build against the gnuTLS version if they so wish. Once everything
builds happily against the gnuTLS version, the next upstream soname bump can
use the gnuTLS library, and we're compatible with other distributions again.)

If the problem isn't that the ABI changes, I'm not clear on why the gnuTLS
change was rolled back. (Bug #321294 implies the ABI changed but the soname
didn't, while #321391 is simply that the curl-config program doesn't report SSL
support, which should be easy to fix, and rolling back the transition was the
response of maximal-surprise to me. ^_^)

If the gnuTLS version is deficient in functionality, but doesn't affect the
ABI or soname, then the best thing to my mind would be to have the two
packages conflict and also provide libcurl3, and have the gnuTLS version
conflict with packages that use functionality that it doesn't support.

That way, either one of libcurl3 and libcurl3-gnutls can be installed, unless:

A GPL package (which only depends on libcurl3-gnutls) is installed:
	libcurl3-gnutls gets pulled in

A package that can't work with gnuTLS version of libcurl (and
therefore libcurl3-gnutls conflicts with it) is installed:
	libcurl3 gets pulled in

Packages of both above types are installed:
	Unresolvable. However, this is also not possible now, unless
	a GPL package is linking against the OpenSSL-using libcurl,
	and therefore the GPL package has an RC bug.

Of course, this solution requires some work as you test each rdependancy
against libcurl3-gnutls. And they would have to be versioned conflicts,
since later versions of that rdependancy might work with the gnutls version,
and if they don't, should take the conflict with libcurl3-gnutls upon
themselves. (And maybe file a bug report against libcurl3-gnutls about the
missing functionality so that when it is fixed, the maintainer knows about
it and can remove the conflict.)

-- 
-----------------------------------------------------------
Paul "TBBle" Hampson, MCSE
8th year CompSci/Asian Studies student, ANU
The Boss, Bubblesworth Pty Ltd (ABN: 51 095 284 361)
Paul.Hampson@Anu.edu.au

"No survivors? Then where do the stories come from I wonder?"
-- Capt. Jack Sparrow, "Pirates of the Caribbean"

License: http://creativecommons.org/licenses/by/2.1/au/
-----------------------------------------------------------

Attachment: pgpZr9xFQYjW5.pgp
Description: PGP signature


Reply to: