[Interest] Linux openssl 1.1.0 versus 1.0.X
Thiago Macieira
thiago.macieira at intel.com
Mon Sep 17 05:34:26 CEST 2018
On Sunday, 16 September 2018 18:24:50 PDT Roland Winklmeier wrote:
> Oh I didn’t know that. I just checked on my Debian Stretch and it has a
> libssl.so.1.0.2 but no symlink libssl.so.1.0. Going through the OpenSSL
> load attempts in QtNetwork then I think it tries in the the following order:
> 1. libssl.so.1.0 - not found since not added by the distributor.
That shouldn't happen. Something is misconfigured in Debian. The macro I
mentioned should be the exact version that matches the SONAME in the library.
The file matching the SONAME needs to be present (that's the whole point of
the SONAME after all). You can find the SONAME by running
objdump -p /usr/lib/whatever/libssl.so.1.0.* | grep SONAME
Please report to Debian and have them correct their headers.
Also, please note that this only applies to something compiled *on* Debian.
The official Qt binaries from download.qt.io are not compiled on Debian.
I haven't followed OpenSSL for a while so I don't know if distributions still
patch OpenSSL to make it have different SONAMEs, like they used to in the
0.9.x days. In those days, distributors had to patch in order to deal with
OpenSSL breaking compatibility all the time. So if distributions had to patch
in 1.0.x and distributions applied *different* patches, the official Qt might
search for things that don't exist on Debian.
One more thing: QtNetwork searches /usr/lib, /usr/lib64, /usr/lib32. It does
NOT search the Debian-specific subdirs that Debian decided unilaterally to
create. Setting LD_LIBRARY_PATH will help.
> 2. libssl.so which on Debian links to libssl.so.1.1
> -> Found and load OpenSSL 1.1.
>
> So if I simply add a symlink for libssl.so.1.0 -> libssl.so.1.0.2 and the
> same for crypto then it should find OpenSSL 1.0 instead?
You're the one with Debian, not me. Try and and tell us.
But I guess it won't.
> I also need to check for openSUSE 15, since I had the same problem there.
That one is easy: the library is /usr/lib64/libssl.so.1.0.0 and that matches
the SONAME. The package is called libopenssl1_0_0. OpenSSL 1.1 is present too
and is in libopenssl1_1. The macro in the OpenSSL 1.1 header matches the
SONAME (I can't check the 1.0 one because I'd have to install it).
But again, the official Qt binaries are not compiled on openSUSE.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Interest
mailing list