russellbanks / Komac

The Community Manifest Creator for WinGet

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

michidk opened this issue · comments

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?

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.

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?

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?

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.