OpenSSL 3.0.8 not compatible with PyKX?

Hi all,

 

We’ve installed PyKX with pip on an Amazon Linux EC2 instance, and when importing the package in a python session there are some “libcrypto* missing” errors. It seems like these might be associated with OpenSSL 1.1, whereas we have 3.0.8.

Is a certain version of OpenSSL required to load PyKX, or could this be some other issue?

Linux version:

[ec2-user@ip-172-31-23-74 ~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
SUPPORT_END="2028-03-01"

OpenSSL yum package version:

[ec2-user@ip-172-31-23-74 ~]$ sudo yum info openssl
Last metadata expiration check: 17:54:31 ago on Sun Jul 2 20:21:14 2023.
Installed Packages
Name : openssl
Epoch : 1
Version : 3.0.8
Release : 1.amzn2023.0.3
Architecture : x86_64
Size : 1.8 M
Source : openssl-3.0.8-1.amzn2023.0.3.src.rpm
Repository : @System
Summary : Utilities from the general purpose cryptography library with TLS implementation
URL : http://www.openssl.org/
License : ASL 2.0
Description : The OpenSSL toolkit provides support for secure communications between
: machines. OpenSSL includes a certificate management tool and shared
: libraries which provide various cryptographic algorithms and
: protocols.

Location of “*crypto.so*” files:

[ec2-user@ip-172-31-23-74 ~]$ sudo find / -name "*crypto.so*"
/usr/lib64/libk5crypto.so.3
/usr/lib64/libk5crypto.so.3.1
/usr/lib64/libcrypto.so.3.0.8
/usr/lib64/libcrypto.so.3

Location added to LD_LIBRARY_PATH:

[ec2-user@ip-172-31-23-74 ~]$ echo $LD_LIBRARY_PATH
/usr/lib64:

Importing PyKX in Python:

[ec2-user@ip-172-31-23-74 ~]$ python3
Python 3.9.16 (main, Feb 23 2023, 00:00:00)
[GCC 11.3.1 20221121 (Red Hat 11.3.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pykx as kx
dlopen attempts failed:
dlopen("crypto.so") -> crypto.so: cannot open shared object file: No such file or directory
dlopen("libcrypto.so") -> libcrypto.so: cannot open shared object file: No such file or directory
dlopen("libcrypto.so.1.1") -> libcrypto.so.1.1: cannot open shared object file: No such file or directory
dlopen("libcrypto.so.1.0.2k") -> libcrypto.so.1.0.2k: cannot open shared object file: No such file or directory
dlopen("libcrypto.so.1.0.0") -> libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
dlopen("libcrypto.so.0") -> libcrypto.so.0: cannot open shared object file: No such file or directory
/home/ec2-user/.local/lib/python3.9/site-packages/pykx/embedded_q.py:65: PyKXWarning: Failed to load KX Insights Core library 'kurl.q': unable to load libcrypto
warn(f'Failed to load KX Insights Core library {lib!r}: {msg.decode()}',

Thanks,

Eoghan

This message is warning about the underlying kurl.q library only.

PyKX has still imported and will still function (apart from any kurl features)

If you wish to use kurl then the requirements are listed here: