Do we need to bump the shared library version for 2.4.0?
simon at josefsson.org
Tue May 27 14:52:18 CEST 2008
Andreas Metzler <ametzler at downhill.at.eu.org> writes:
> Is (or has it ever been in > 2.2.0) gnutls-extra useable on its own?
No, you need to call gnutls_global_init() in -lgnutls before
gnutls-extra is useful. Further, libgnutls-extra links to libgnutls.
> I.e. is there a cause to be made for anything only linking against
> gnutls-extra directly but not against libgnutls main? If correct usage
> of gnutls-extra requires linking/dlopening libgnutls I think there is
> strong case for 3.
You can't use libgnutls-extra without libgnutls. The only function in
libgnutls-extra that doesn't require earlier calls to functions in
libgnutls is gnutls_extra_check_version. That function will continue to
work fine, and doesn't even require initialization of libgnutls or
However, technically I'm not sure that is sufficient. The rules when to
increment the shared library version is to do it when you remove a
symbol from a library. And we have removed symbols from
libgnutls-extra. What is unclear to me is whether it is safe to assume
no problem will happen because libgnutls-extra links to libgnutls, and
libgnutls contains the old symbols.
> Packagers generally would slightly also prefer 2 over 1. The problem
> you noted is easily avoided for packages, since co-installion of
> the different libraries can be prevented by using package
> dependencies/conflicts. For Debian packages specifically, 2 would create
> a problem since I currenly do not track packages using libgnutls-extra
> separately. - Therefore anything linking against it would be broken
> until rebuilt. - I am only mentioning this for completeness sake, I
> do not think Debian-specic issues should be an important point.
I don't think we as upstream can rely on this. We need to work portably
for people that install both gnutls 2.2.x and gnutls 2.4.x manually. So
the problem I described is valid, and I don't see a way to avoid it.
This leads to choosing 1.
> PS: I you bump so names, please also bump symbol versioning.
Why is that necessary? I think we have discussed this before (for the
2.2.x abi break) but eventually decided not to increment the versioning.
More information about the Gnutls-devel