Sunshine icon indicating copy to clipboard operation
Sunshine copied to clipboard

sunshine looking for `libssl.so.1.1` on debian distros that use `libssl3`

Open jackharrer opened this issue 2 years ago • 15 comments

Describe the Bug

In Ubuntu 22.04 CUDA version has been bumped to 11.5. This version is not compatible with latest NVIDIA legacy driver (470.x). Sunshine still compiles using 22.04 docker scripts, but Sunshine cannot start CUDA (and thus nvenc) due to version incompatibility.

Expected Behavior

Same issue will happen when building directly (without docker) on 22.04 for all NVIDIA driver versions below 495.x.

Additional Context

Fix is rather simple:

  1. copy Dockerfile-ubuntu_22_04 to Dockerfile-ubuntu_22_04_legacy:
  2. remove 2 lines nvidia-cuda-dev
    nvidia-cuda-toolkit \
  3. add: RUN wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run --progress=bar:force:noscroll -q --show-progress -O /root/cuda.run && chmod a+x /root/cuda.run RUN /root/cuda.run --silent --toolkit --toolkitpath=/usr --no-opengl-libs --no-man-page --no-drm && rm /root/cuda.run

before line with build.sh

Downloaded CUDA version could be changed to latest 11.4.4 (I just copied above from 20.04 docker script) but 11.4.2 still works.

Sunshine Host Operating System and Version

Ubuntu 22.04

Architecture

x64

Sunshine Version

0.13.0 (git pull)

GPU Type

NVidia

GPU Model

GTX 970

GPU Driver/Mesa Version

470.129.06

Capture Method (Linux Only)

No response

jackharrer avatar Jun 12 '22 08:06 jackharrer

We're moving away from the Dockerfiles. Do you mind testing the latest CI build from the add-cpack PR? There's a single deb.

ReenigneArcher avatar Jun 12 '22 12:06 ReenigneArcher

@ReenigneArcher No problems - but I have no idea where it is - my knowledge of git is rather limited. Can you point me to correct location where I can grab this package?

jackharrer avatar Jun 13 '22 12:06 jackharrer

@rcz01 See here: https://github.com/SunshineStream/Sunshine/actions/runs/2483978090

You need to be logged in, artifacts are at the bottom.

ReenigneArcher avatar Jun 13 '22 12:06 ReenigneArcher

@ReenigneArcher It worked fine - it also had lower CPU load - single core at about 20%, compared to the one I compiled which used around 60% + GPU.

jackharrer avatar Jun 13 '22 13:06 jackharrer

Cool, I'll close this then. We're close to a new release that will include these changes. Thanks.

ReenigneArcher avatar Jun 13 '22 13:06 ReenigneArcher

@ReenigneArcher I tried it in VM. It seems there is an issue on vanilla Ubuntu 22.04: sunshine cannot load libssl.so.1.1 - based on quick search 22.04 uses libssl3 and this file is missing. It probably worked before as my home server is donkey's years old (bunch of upgrades since 12.04) and may have it installed as some dependency.

I also tested AppImage - it required sudo to start (complains about file system access for no apparent reason) but works fine. I haven't tested sound yet - I nuked pulseaudio from this VM. I will install it and let you know, later.

jackharrer avatar Jun 13 '22 14:06 jackharrer

@ReenigneArcher I tried it in VM. It seems there is an issue on vanilla Ubuntu 22.04: sunshine cannot load libssl.so.1.1 - based on quick search 22.04 uses libssl3 and this file is missing. It probably worked before as my home server is donkey's years old (bunch of upgrades since 12.04) and may have it installed as some dependency.

I also tested AppImage - it required sudo to start (complains about file system access for no apparent reason) but works fine. I haven't tested sound yet - I nuked pulseaudio from this VM. I will install it and let you know, later.

It should be looking for libssl1.1 first, then libssl3... Let me look into this further

ReenigneArcher avatar Jun 13 '22 14:06 ReenigneArcher

AppImage is fine - I had issues with /dev/uinput being only accessible by root (there is an existing ticket for it) but that is not related to Sunshine itself. Otherwise it works fine in software mode.

jackharrer avatar Jun 13 '22 17:06 jackharrer

question... can you do sudo apt install libssl3 on your Ubuntu 22.04?

If so please provide more of the output when you run sunshine from terminal.

ReenigneArcher avatar Jun 13 '22 17:06 ReenigneArcher

libssl3 is installed by default on Ubuntu 22.04.

There is only one line (even on log level 0): sunshine: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

I even copied libssl.so.1.1 from server to VM - then it complained about lack of libcrypto.so.1.1 (same message)

jackharrer avatar Jun 13 '22 18:06 jackharrer

okay, thanks

ReenigneArcher avatar Jun 13 '22 18:06 ReenigneArcher

I'm thinking we should just define openssl instead of libssl1.1 or libssl3

ReenigneArcher avatar Jun 13 '22 21:06 ReenigneArcher

@rcz01 can you try the deb from this build?

https://github.com/SunshineStream/Sunshine/actions/runs/2504831788

ReenigneArcher avatar Jun 15 '22 20:06 ReenigneArcher

Still the same: sunshine: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory :(

jackharrer avatar Jun 15 '22 20:06 jackharrer

http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/?C=M;O=D

Download the latest libssl1.1_1.1 for amd64, assuming your architecture is amd64 dpkg -i packagename.deb

praxis88 avatar Aug 19 '22 16:08 praxis88

I'm thinking we should just define openssl instead of libssl1.1 or libssl3

Yeah, I almost though openssl wasn't even installed on my system, I'm reproduce this exact error now after updating to 0.15.0.

Theslees avatar Nov 07 '22 05:11 Theslees

This error is due to the system we build the deb on... it has nothing to do with the dependencies we specify that are needed.

ReenigneArcher avatar Nov 07 '22 11:11 ReenigneArcher

Im not even sure you can modularly dropin in ssl3 for ssl1 without some code updating

ssl1 is going the way of the dodo, or python2

praxis88 avatar Nov 07 '22 14:11 praxis88

I'm reproducing this error on Arch though, not Debian like the post says. Mb. image

Im not even sure you can modularly dropin in ssl3 for ssl1 without some code updating

ssl1 is going the way of the dodo, or python2

Wasn't needed prior to 0.15.0 either though

Theslees avatar Nov 08 '22 05:11 Theslees

I'm reproducing this error on Arch though, not Debian like the post says. Mb. image

Im not even sure you can modularly dropin in ssl3 for ssl1 without some code updating

ssl1 is going the way of the dodo, or python2

Wasn't needed prior to 0.15.0 either though

I don't think you're reproducing the issue. On arch you build the package yourself assuming you're using the AUR. So install whatever dependency it's looking for.

ReenigneArcher avatar Nov 08 '22 11:11 ReenigneArcher

I can confirm that I: a) use arch b) don't have libssl.so.1 installed c) run sunshine (built from AUR) without any problems.

KuleRucket avatar Nov 08 '22 16:11 KuleRucket

$ ldd $(which sunshine) | grep ssl libssl.so.3 => /usr/lib/libssl.so.3 (0x00007fab27760000) $ sunshine --version [nv_rc] -- [auto] [nv_preset] -- [p3] [nv_coder] -- [auto] [file_apps] -- [apps.json] [encoder] -- [nvenc] [file_state] -- [sunshine_state.json] [origin_pin_allowed] -- [lan] [origin_web_ui_allowed] -- [lan] [min_log_level] -- [2] [sunshine_name] -- [Linux] Sunshine version: v0.15.0 $ grep NAME /etc/os-release NAME="Arch Linux" PRETTY_NAME="Arch Linux"

KuleRucket avatar Nov 08 '22 16:11 KuleRucket

Okay, I just made symlinks redirecting libssl.so.1.1 to libssl.so in /usr/lib, which then complained about libcrypto.so.1.1 after attemppting to run sunshine again. So i created a symlink for that too leading to libcrypto.so. Didn't work, so i tried making symlinks for libcrypto.so.3 and libssl.so.3 too, but both times I get this same error; image I have a feeling this has to do with the new openssl update that was pushed out recently.. Though users here on Arch aren't having any trouble, so I guess i'll just try to resolve the dependency itself like suggested. I just thought I would share this nonetheless,

Theslees avatar Nov 10 '22 04:11 Theslees

As I already mentioned, this has to do with the OS that we build the deb package on, 20.04.

Yeah, also I just got the dependency via a pacman system update, though it took awhile for it to get there in my repos. Works now though, it shouldnt be an issue at all since Arch has it now

Theslees avatar Nov 10 '22 14:11 Theslees

This all sounds very strange to me, as though you have downloaded the sunshine binary pre-built from somewhere. In the AUR the package is built based on the libraries you have installed. It can't build and then find them missing later because if they were missing it would not link in the first place. You shouldn't have to go installing legacy versions of libraries and creating symbolic links. Something more fundimental is wrong with the way you are trying to install sunshine.

KuleRucket avatar Nov 10 '22 14:11 KuleRucket

I installed sunshine via yay -S sunshine And when i created the symlinks it instead asked for OPENSSL_1_1_0 which i got that exact package yesterday via pacman -Syu, fixing sunshine If you had installed sunshine any other way you probably didnt have this issue, because I installed sunshine through the aur package

Theslees avatar Nov 10 '22 22:11 Theslees

I have been unable to install it on Pop_OS! It's a shame your software is one of my favorites.

PXL_20221126_051200054l

Maverlath avatar Nov 26 '22 07:11 Maverlath

Does anyone have any suggestions on how I might be able to get it working? I am having the same issues on Ubuntu 22.04. Thanks for your help in advance.

Maverlath avatar Nov 27 '22 04:11 Maverlath

Does anyone have any suggestions on how I might be able to get it working? I am having the same issues on Ubuntu 22.04. Thanks for your help in advance.

Compile manually

ReenigneArcher avatar Nov 27 '22 12:11 ReenigneArcher

This issue has been fixed and will be available in the next release.

LizardByte-bot avatar Dec 12 '22 02:12 LizardByte-bot