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

von Corax

New Member

Reaction score: 1
Messages: 5

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?
 

MarcoB

Well-Known Member

Reaction score: 117
Messages: 396

- What version of FreeBSD do you use?
- Is your portstree up-to-date?
 
OP
V

von Corax

New Member

Reaction score: 1
Messages: 5

Right, sorry. It's 10.3-RELEASE-p7, and this is immediately after running portsnap.
 

MarcoB

Well-Known Member

Reaction score: 117
Messages: 396

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
 
OP
V

von Corax

New Member

Reaction score: 1
Messages: 5

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.
 

MarcoB

Well-Known Member

Reaction score: 117
Messages: 396

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).
 

SirDice

Administrator
Staff member
Administrator
Moderator

Reaction score: 11,252
Messages: 37,429

(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
 
Top