ktwrd / beans-rs

Open-Source Installer for Sourcemods
GNU General Public License v3.0
7 stars 1 forks source link

Unable to use with Ubuntu 20.04 and earlier. #20

Closed ktwrd closed 4 months ago

ktwrd commented 4 months ago

Source Engine Servers depend on Ubuntu 20.04 which use glibc 2.29, but only have libssl v1.1.

This is an issue because at the moment it's one or the other, and it would be best for beans-rs to conform to the requirements (which is not using libssl v3.x).

Could use rust-tls instead?

ktwrd commented 4 months ago

When checking the libraries used by the current version (the build that is currently available via https://beans.adastral.net/beans), then the following libraries are used

./beans: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./beans)
./beans: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./beans)
./beans: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./beans)
        linux-vdso.so.1 (0x00007fff69904000)
        libssl.so.3 => not found
        libcrypto.so.3 => not found
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000079460bde5000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000079460bc96000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000079460baa4000)
        /lib64/ld-linux-x86-64.so.2 (0x000079460cd80000)

But when using rust-tls, these libraries are used.

linux-vdso.so.1 (0x00007ffc599ad000)
libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x0000705ab34e0000)
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x0000705ab1529000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x0000705ab34c5000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x0000705ab34a2000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x0000705ab13da000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x0000705ab349c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x0000705ab11e8000)
/lib64/ld-linux-x86-64.so.2 (0x0000705ab357f000)

Note The build using the rust-tls feature was created with Ubuntu 20.04.

Hopefully this will be fixed in v1.5.0

ktwrd commented 4 months ago

Using musl as a rust target (instead of gnu) could also help with dropping the libc dependency on the system.

ktwrd commented 4 months ago

Current commit in develop (action) should work without glibc on the system or libssl. This was fixed by building on Linux with musl instead of gnu, and by using rustls instead of native-tls for sentry and reqwest.

Windows builds will be unaffected since it uses msvc.

ktwrd commented 4 months ago

Fix will be available when v1.5.0 is released later today. Currently available to download right now in this release