rtl_433_docker icon indicating copy to clipboard operation
rtl_433_docker copied to clipboard

Missing libressl.so.55 & libcrypto.so.52 during runtime only in Alpine 3.19

Open aav7fl opened this issue 1 year ago • 6 comments

Hi. There appears to be a breaking change in the latest rtl_433 (23.11) that I believe are preventing the hertzg/rtl_433:latest docker container from starting.

Findings

The exact changes in the new release are here: @23.11

EDIT. 23.11-debian works so I think there may be some changes in the alpine image where it's missing libraries.

Logs

On boot, these errors print out over and over.

Error loading shared library libssl.so.55: No such file or directory (needed by /usr/local/bin/rtl_433)
Error loading shared library libcrypto.so.52: No such file or directory (needed by /usr/local/bin/rtl_433)
Error relocating /usr/local/bin/rtl_433: SSL_get_error: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_get_fd: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_write: symbol not found
Error relocating /usr/local/bin/rtl_433: SSLv23_client_method: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_free: symbol not found
Error relocating /usr/local/bin/rtl_433: SSLv23_server_method: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_use_certificate_chain_file: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_set_fd: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_set_verify: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_library_init: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_read: symbol not found
Error relocating /usr/local/bin/rtl_433: PEM_read_bio_DHparams: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_ctrl: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_new: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_use_certificate_file: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_shutdown: symbol not found
Error relocating /usr/local/bin/rtl_433: BIO_new_mem_buf: symbol not found
Error relocating /usr/local/bin/rtl_433: DH_free: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_accept: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_new: symbol not found
Error relocating /usr/local/bin/rtl_433: BIO_free: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_load_verify_locations: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_ctrl: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_use_PrivateKey_file: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_set_cipher_list: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_connect: symbol not found
Error relocating /usr/local/bin/rtl_433: SSL_CTX_free: symbol not found
Error relocating /usr/local/bin/rtl_433: BIO_new_file: symbol not found

Workaround

I was able to use a non-alpine docker image to get it running: hertzg/rtl_433:23.11-debian

aav7fl avatar Dec 09 '23 16:12 aav7fl

Hello, Seems like the dependency of libressl package for alpine was changed between Alpine v3.18 and Alpine v3.19

LDD shows that during runtime the there are those shared libraries missing

~ # ldd /usr/local/bin/rtl_433
	/lib/ld-musl-aarch64.so.1 (0xffffb3023000)
Error loading shared library libssl.so.55: No such file or directory (needed by /usr/local/bin/rtl_433)
Error loading shared library libcrypto.so.52: No such file or directory (needed by /usr/local/bin/rtl_433)
	librtlsdr.so.2 => /usr/lib/librtlsdr.so.2 (0xffffb2f11000)
	libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0xffffb2ee0000)
	libc.musl-aarch64.so.1 => /lib/ld-musl-aarch64.so.1 (0xffffb3023000)

/ref https://gitlab.alpinelinux.org/alpine/aports/-/issues/15563

hertzg avatar Dec 09 '23 20:12 hertzg

If you still want to use alpine image before the issue on alpine side is answered and don't mind using the v3.18 version you can use hertzg/rtl_433:23.11-alpine3.18 tag.

hertzg avatar Dec 09 '23 20:12 hertzg

Rolled back alpine to 3.18 for now in #102

hertzg avatar Dec 10 '23 09:12 hertzg

@aav7fl - thanks for the reporting this! I also ran into it after my containers upgraded last night.

y2kdread avatar Dec 10 '23 16:12 y2kdread

Ditto to above, switched to debian image to fix, and following along here so i can revert back in future when alpine sorts its side.

dfiore1230 avatar Dec 11 '23 15:12 dfiore1230

Another workaround is to do apk add libressl3.8-libssl if you run your build the image based on mine or just run it inside the container (not persistent), I don't want to add this to the base Dockerfile as the package name is not consistent between alpine versions. Alpine 3.18 has libressl3.7-libssl and there's no "regex" or wildcart support for apk add.

Consistent solution would need bash magic to do apk search and then apk add if this takes too long for the upstream to fix it. Can review a PR if anyone is up for doing a pr.

hertzg avatar Dec 11 '23 18:12 hertzg