Re: Correct dependencies on libgnutls-dev? (#370387)
Loïc Minier <email@example.com> writes:
> I received #370387 claiming that I should version my libgnutls-dev dep
> because libgnutls11-dev provides libgnutls-dev and this can cause
> multiple versions of libgnutls to be linked to a binary (e.g. the
> version pulled by libsoup, and the version pulled by -lgnutls when the
> binary is built).
Provided package can never be versioned since dpkg does not support
that. Also, if 2 or more packages provide a virtual package then you
may not Build-Depend on that virtual package but must use "real |
virt". But I don't think this is the case for libgnutls-dev.
I think you are correct to depend on the virtual libgnutls-dev. If
libsoup needs a specific version of libgnutls to be used when linking
then libsoup-dev should depend on the stricter libgnutls11-dev package
to force linking against the correct one. I don't think it is the
packages job to guess what sub libraries their libraries need.
If you Build-Depend on libgnutls11-dev and libsoup updates to
libgnutls12 your package will become instantly FTBFS while with
libgnutls-dev it will just need a binNMU to transition.
> I consider all of this is normal even if it indeed allows binaries to
> end up linked with multiple versions of gnutls.
Happens all the time, at least with different versions with the same
abi/soname of a library. Mixing libfoo1 and libfoo2 is usualy bad.
> If we were to force all binaries to link to one and only one gnutls,
> then we wouldn't allow two or three gnutls versions in the archive at
> the same time.
If the symbols in libgnutls are properly versioned you could even mix
libraries linked against different versions of libgnutls. But not
every library is that clean, most require a combined transition of all
libs in a binary at once.
> Is this correct? Am I missing something?
Don't think so.
> Thanks for comments,