Nikos Mavrogiannopoulos n.mavrogiannopoulos@gmail.com writes:
On Mon, Mar 30, 2020 at 1:23 PM Niels Möller nisse@lysator.liu.se wrote:
The error is
1217 ./bootstrap: getting translations into po/.reference for gnutls... 1218 wget: /lib64/libhogweed.so.5: version `HOGWEED_INTERNAL_5_0' not found (required by /lib64/libgnutls.so.30) 1219 wget: /lib64/libnettle.so.7: version `NETTLE_INTERNAL_7_0' not found (required by /lib64/libgnutls.so.30)
I don't quite understand all details. This job buils and installs nettle, as
./configure --disable-documentation --prefix=/usr --libdir=/usr/lib64 && make -j4 && make install
That works well as long as binary compatibility is kept. As nettle breaks it, applications in the system will be unable to run.
But advertised binary compatibility between Nettle releases considers only the symbols related to the public api, not the symbols with *INTERNAL* as version. When gnutls refers to internal symbols, there's no binary compatibility at all between nettle versions.
I would strongly recommend that the default configuration of gnutls don't refer to internal nettle symbols. And any packaging of a version with a non-default configuration enabling use of nettle internals (e.g, to support more gost curves) needs to depend on a particular version of nettle, rather than on the soname, which only captures binary compatibility of the public ABI.
We may want to install nettle somewhere separately and instruct gnutls to use it from there rather than the default locations.
That seems to be the right solution to the immediate problem.
Regards, /Niels