Skip to content

SWAT dependencies on OpenSSL libraries #148

Closed
@githje

Description

@githje

Hi,

it seems that SWAT (tested with release 1.12, both Python and R-SWAT) requires older versions of libcrypto.so and libssl.so which might no longer be shipped with recent Linux distros (my environment is a Ubuntu 22.04 LTS). This is probably the same issue as discussed here: #106. Trying to initialize SWAT returns this error message in the notebook:

RuntimeError: Booting the TK subsystem failed: TKECERT: Extension load failure.

And:

ERROR: Could not load opensslcert extension. OpenSSL libraries are not found or the wrong version.

(found in the container log of the Jupyter notebook app). I was able to work around this issue by providing the required older library versions like this:

# extract *.so files from old openssl package
wget https://archlinux.org/packages/core/x86_64/openssl-1.1/download/ -O openssl-1.1-1.1.1.s-4-x86_64.pkg.tar.zst
tar --use-compress-program=unzstd -xvf openssl-1.1-1.1.1.s-4-x86_64.pkg.tar.zst
cp usr/lib/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/
cp usr/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/

# set environment variables pointing to .so files in Jupyter config.
echo "os.environ[\"TKECERT_CRYPTO_LIB\"] = '/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1'" >> /etc/jupyter/jupyter_notebook_config.py
echo "os.environ[\"TKESSL_OPENSSL_LIB\"] = '/usr/lib/x86_64-linux-gnu/libssl.so.1.1'" >> /etc/jupyter/jupyter_notebook_config.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions