Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: OpenSSL v1 is a undocumented requirement - Makes Komac unusable on modern systems #558

Closed
1 task done
michidk opened this issue Apr 7, 2024 · 4 comments
Closed
1 task done
Assignees
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@michidk
Copy link
Contributor

michidk commented Apr 7, 2024

Is there an existing issue for this?

  • I have searched the existing issues

What happened?

Release https://github.com/russellbanks/Komac/releases/tag/v2.2.0 mentions that it now requires OpenSSL to be installed.
This is not documented in the readme.

However, even after installing OpenSSL via apt-get on Ubuntu 22.04 any trying to run https://github.com/russellbanks/Komac/releases/download/v2.2.0/KomacPortable-linux-x64.tar.gz, I get:

error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

This is because Ubuntu 22.04 comes with OpenSSL 3.2.1 30 Jan 2024 (Library: OpenSSL 3.2.1 30 Jan 2024)

Seems like OpenSSL v1 is required for the builds from GitHub releases:
image

OpenSSL v1.1.1 reached it's end of life 11th September 2023 (https://www.openssl.org/blog/blog/2023/09/11/eol-111/index.html). So is this really something we should do?

Interestingly it works fine when installing with cargo install. In that case it seems to link to OpenSSL v3:
image

Is there any guidance on how to get it to run on Ubuntu 22 with the builds from GitHub releases?

@michidk michidk added bug Something isn't working help wanted Extra attention is needed labels Apr 7, 2024
@michidk michidk changed the title [Bug]: OpenSSL v1 (?) is a requirement know but not documented. Make Komac unusable on modern systems [Bug]: OpenSSL v1 is a undocumented requirement - Makes Komac unusable on modern systems Apr 7, 2024
@russellbanks
Copy link
Owner

The builds from the GitHub releases are built with cross which installs the latest OpenSSL beforehand. I'll have a look into why it's expecting OpenSSL v1.

@russellbanks
Copy link
Owner

The issue is that cross' Docker images use Ubuntu 20.04 where libssl-dev is still v1. Ubuntu 22.04 has v3. There's a pull request to update the base images to 22.04 but it was created in July 2022 and hasn't had much progress. After lots of researching and testing with dynamically and statically linking OpenSSL, I've been able to get it to work and link to OpenSSL v3 without external tools. However, because of the difficulty of this, I've dropped the FreeBSD builds as well as the arm and arm64 builds on Linux.

@michidk could you possibly confirm that the Linux builds from the nightly release are linking against OpenSSL v3?

@michidk
Copy link
Contributor Author

michidk commented Apr 9, 2024

Yep, seems good:

❯ ldd KomacPortable-linux-nightly-x64
        linux-vdso.so.1 (0x00007ffe25dc4000)
        libssl.so.3 => /usr/lib/libssl.so.3 (0x00007f1a98b64000)
        libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007f1a98631000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f1a9860c000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f1a98520000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f1a9833e000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f1a9954a000)

Thanks a lot for the quick fix! Do you have a rough estimate of when the next release will be published?

@russellbanks
Copy link
Owner

Thanks a lot for the quick fix! Do you have a rough estimate of when the next release will be published?

Probably tomorrow - I want to add automatic publishing to crates.io then I'll release 2.2.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants