On 08/03/2016 06:30 PM, Chris Adams wrote:> Once upon a time, Alice Wonder <alice at domblogger.net> said: >> [alice at pern ~]$ ldd /usr/bin/curl |grep crypto >> libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f4524390000) >> libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f45234ca000) > > What do the following show: > > ldd /usr/bin/curl > ldd /usr/lib64/libcurl.so.4 > ldd /usr/lib64/libssh2.so.1 > > I can only guess you don't have the libssh2 you think you have.It's worse than I thought. I just very carefully went through the mock build root. openssl-libs is indeed not even installed. There is no libcrypto.so.10 installed in the mock build root. But the binary built by mock still links to it. So it is linking against a library not even in the mock build root. That shouldn't happen. [alice at pern root]$ pwd /var/lib/mock/awel-7-curl-x86_64/root (to show I'm in the build root - I put exit 1 in %check) [alice at pern root]$ ls usr/lib64/ |grep crypto libcrypto.so.38 libcrypto.so.38.0.0 libk5crypto.so.3 libk5crypto.so.3.1 [alice at pern root]$ ldd builddir/build/BUILDROOT/curl-7.29.0-26.el7_2.awel.libre.0.x86_64/usr/bin/curl |grep crypto libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fb6e00a5000) libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fb6df3e8000) [alice at pern root]$
Once upon a time, Alice Wonder <alice at domblogger.net> said:> [alice at pern root]$ ldd builddir/build/BUILDROOT/curl-7.29.0-26.el7_2.awel.libre.0.x86_64/usr/bin/curl > |grep crypto > libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fb6e00a5000) > libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fb6df3e8000)Here is your problem - unless you specify an LD_LIBRARY_PATH, you are getting the mock root installed libcurl, not your newly-built libcurl. -- Chris Adams <linux at cmadams.net>
On 08/03/2016 06:40 PM, Chris Adams wrote:> Once upon a time, Alice Wonder <alice at domblogger.net> said: >> [alice at pern root]$ ldd builddir/build/BUILDROOT/curl-7.29.0-26.el7_2.awel.libre.0.x86_64/usr/bin/curl >> |grep crypto >> libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fb6e00a5000) >> libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fb6df3e8000) > > Here is your problem - unless you specify an LD_LIBRARY_PATH, you are > getting the mock root installed libcurl, not your newly-built libcurl. >So when building curl, it links curl against the libcurl in the buildroot and not against the libcurl it just compiled? No other packages I know of do that. I've built a love of packages against LibreSSL (I really like it) and ldd on the resulting binaries and libraries *always* point to the LibreSSL library - even when openssl-libs is installed in the buildroot. It seems to me to be a bug if curl requires a bootstrap build in order to change what libraries the binary links against but I will try that.