Solved cmake-3.7.1 install fails - Shared object "libcrypto.so.8" not found

I'm trying to update devel/cmake on FreeBSD 10.3-RELEASE-p7 and am running into a problem at the "install" phase. The build phase appears to complete successfully, but the process aborts with the following output:

Code:
[100%] Built target documentation
===>  Staging for cmake-3.7.1
===>   Generating temporary packing list
[  7%] Built target cmsys

-- progress messages omitted for brevity

[100%] Built target documentation
Installing the project stripped...
Shared object "libcrypto.so.8" not found, required by "libarchive.so.13"

I have /usr/lib/libcrypto.so, but no files named libcrypto.so.n.

Do I need to a) reinstall something, b) symlink libcrypto.so, c) report a broken port, or d) do something else entirely?
 
You are getting this message because libarchive depends on a openssl library version that couldn't be found. Your FreeBSD version seems up to date enough so my guess is that your ports aren't and some are linked against an old openssl library version. So I would:
- update the portstree (portsnap fetch update)
- portupgrade -r libarchive, or portupgrade -fr cmake, or maybe even a portupgrade -fa
 
I did portmaster -f archivers/libarchive and got stuck on a vulnerability in openssl. Next I ran portmaster -m DISABLE_VULNERABILITIES=yes security/openssl which succeeded, (I now have /usr/local/lib/libcrypto.so.9; I followed that with portmaster archivers/libarchive (which succeeded), and finally portmaster devel/cmake was also successful.
 
Glad it's solved :). Remember though that your system now has two openssl versions: the one in base and the port. Libarchive is now built against the openssl port library, but there are probably other ports still built against the library in base. If you want to use only the openssl port version, you have to rebuild all your ports (with, I think a line in make.conf that your system uses the port version).
 
(with, I think a line in make.conf that your system uses the port version)
Yep, add to /etc/make.conf:
Code:
DEFAULT_VERSIONS+= ssl=openssl

This will make sure all ports are built against the port's OpenSSL instead of the base OpenSSL. You can also use it to switch to LibreSSL:
Code:
DEFAULT_VERSIONS+= ssl=libressl
 
Back
Top