[gnutls-dev] Re: gnutls's sonames
jas at extundo.com
Thu Mar 10 15:15:08 CET 2005
Tim Ringenbach <tim.ringenbach at comcast.net> writes:
> Our ssl support is done via plugins, so we have a ssl-nss.so plugin for
> mozilla nss, and a ssl-gnutls.so for gnutls. The autopackage compiles
> both, and whatever is available at runtime is used.
> Currently, the ssl-gnutls plugin depends upon libgnutls.so.11. However,
> many people have a version of gnutls with a different soname, such as
> libgnutls.so.10 or libgnutls.so.7, and I hear a libgnutls.so.12 is out
> now too.
I think GnuTLS 1.1.x and 1.2.x uses libgnutls.so.12.1, and GnuTLS
1.0.x uses libgnutls.so.11.1.
As such, libgnutls.so.12 is supposed to be ABI compatible with
libgnutls.so.11, according to GNU ld and the GNU Libtool philosophy,
if I understand things correctly. I'm not sure how rigorously this
has been enforced or checked in GnuTLS though.
> What I'm probably going to do is build multiple versions of the plugin
> against each version of gnutls. So I'll have a ssl-gnutls10.so and a
> ssl-gnutsl11.so, etc. I expect setting up the build environment for this
> will be a bit tricky though.
Are you sure the libraries aren't sufficiently ABI compatible for your
> What is bound to make it even trickier though, is that you don't seem to
> document when you change your soname. Your version numbers seem to have
> nothing to do with your so version, and your NEWS doesn't seem to
> mention anything about such changes. So I have no idea what versions of
> gnutls I need.
> So what's up with this? Is this documented somewhere I can't find, or
> why isn't it documented?
First, review this link:
That is the philosophy I will be using for 1.2.x. I will add a
API/ABI section in NEWS for every future 1.2.x release.
I can't speak for older releases, perhaps Nikos knows. If you want to
do some archeology on the CVS server, and document what you find, that
would be a useful contribution! Could be added as a section in the
manual, for instance.
> Also any tips on setting up a build enviroment for what I'm wanting to do?
Perhaps you could consider dlopen libgnutls.so.
More information about the Gnutls-devel