Sunshine icon indicating copy to clipboard operation
Sunshine copied to clipboard

symbol lookup error when installing Sunshine beta in SteamOS 3.6.19

Open CarlosVR2 opened this issue 1 year ago • 2 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Is your issue described in the documentation?

  • [X] I have read the documentation

Is your issue present in the latest beta/pre-release?

This issue is present in the latest pre-release

Describe the Bug

I'm getting the error below when trying to run the beta version of Sunshine v2024.1030.140606 on my Steam Deck OLED running SteamOS 3.6.19.

sunshine: symbol lookup error: sunshine: undefined symbol: ucnv_getMaxCharSize_75

Exactly the same error occurs when installing the AUR version with MAKEPKG and when using beta version v2024.1030.337.

The stable version (0.23.1) installed on the same way runs fine.

Expected Behavior

I expect the beta version to run with no errors after being installed.

Additional Context

I'm installing the beta version of Sunshine v2024.1030.140606 on my Steam Deck OLED running SteamOS 3.6.19.

I first used the command: wget https://github.com/LizardByte/Sunshine/releases/download/v2024.1030.140606/sunshine.pkg.tar.zst And then: pacman -U --noconfirm sunshine.pkg.tar.zst Then I tried running Sunshine, but I got the error message below: sunshine: error while loading shared libraries: libminiupnpc.so.18: cannot open shared object file: No such file or directory I used the command below to fix that error: patchelf --replace-needed libminiupnpc.so.18 libminiupnpc.so.17 /usr/bin/sunshine Then I got a similar error pointing to a different file: sunshine: error while loading shared libraries: libicuuc.so.75: cannot open shared object file: No such file or directory And I fixed it similarly: patchelf --replace-needed libicuuc.so.75 libicuuc.so.74.2 /usr/bin/sunshine Then I tried running Sunshine again, and I got a new error: sunshine: symbol lookup error: sunshine: undefined symbol: ucnv_getMaxCharSize_75

I haven't been able to fix that last one.

Exactly the same errors occur when installing the AUR version with MAKEPKG and when using beta version v2024.1030.337.

The stable version (0.23.1) installed on the same way runs fine.

Host Operating System

Linux

Operating System Version

SteamOS 3.6.19

Architecture

amd64/x86_64

Sunshine commit or version

v2024.1030.140606

Package

Linux - pkg.tar.zst

GPU Type

AMD

GPU Model

RADV VANGOGH

GPU Driver/Mesa Version

24.2.5

Capture Method

None

Config

No response

Apps

No response

Relevant log output

The program doesn't run, so there are no logs.

CarlosVR2 avatar Oct 30 '24 17:10 CarlosVR2

Just from reading what you wrote, it appears that you are attempting to use a different version of libicuuc than the version that Sunshine was linked against. The ucnv_getMaxCharSize symbol appears to be at least somewhat related to libicuuc. My guess is that the library you're attempting to use is not binary compatible with the one that Sunshine was linked against. You can't just replace libraries with different versions in binary code and it expect it to work.

cathyjf avatar Nov 02 '24 13:11 cathyjf

Hello @cathyjf , thank you for your reply.

As you say, it seems the beta version of Sunshine is looking specifically for version 2.2.8 of miniupnpc and version 75 of icu. So I tried upgrading those packages before installing Sunshine beta, downloading the packages directly from https://archlinux.org/packages/ .

Upgrading miniupnpc was easy enough:

pacman -U miniupnpc-2.2.8-1-x86_64.pkg.tar.zst
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (1) miniupnpc-2.2.8-1

Total Installed Size:  0.13 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                                                                [#######################################################] 100%
(1/1) checking package integrity                                                              [#######################################################] 100%
(1/1) loading package files                                                                   [#######################################################] 100%
(1/1) checking for file conflicts                                                             [#######################################################] 100%
(1/1) checking available disk space                                                           [#######################################################] 100%
:: Processing package changes...
(1/1) upgrading miniupnpc                                                                     [#######################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

But I couldn't upgrade icu due to a dependency issue with freerdp:

pacman -U icu-75.1-1-x86_64.pkg.tar.zst 
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing icu (75.1-1) breaks dependency 'libicuuc.so=74-64' required by freerdp

And trying to upgrade freerdp didn't work either:

pacman -U freerdp2-2.11.7-1-x86_64.pkg.tar.zst
loading packages...
resolving dependencies...
warning: cannot resolve "libavcodec.so=61-64", a dependency of "freerdp2"
warning: cannot resolve "libavutil.so=59-64", a dependency of "freerdp2"
warning: cannot resolve "libswresample.so=5-64", a dependency of "freerdp2"
warning: cannot resolve "libswscale.so=8-64", a dependency of "freerdp2"
warning: cannot resolve "libicuuc.so=75-64", a dependency of "freerdp2"
:: The following package cannot be upgraded due to unresolvable dependencies:
      freerdp2

:: Do you want to skip the above package for this upgrade? [y/N] n
error: failed to prepare transaction (could not satisfy dependencies)
:: unable to satisfy dependency 'libavcodec.so=61-64' required by freerdp2
:: unable to satisfy dependency 'libavutil.so=59-64' required by freerdp2
:: unable to satisfy dependency 'libswresample.so=5-64' required by freerdp2
:: unable to satisfy dependency 'libswscale.so=8-64' required by freerdp2
:: unable to satisfy dependency 'libicuuc.so=75-64' required by freerdp2

Any thoughts?

CarlosVR2 avatar Nov 05 '24 19:11 CarlosVR2

I encountered this problem because libminiupnpc has been updated to 19 on aur, and sunshine still depends on 18

NeroBlackstone avatar Jan 26 '25 09:01 NeroBlackstone

I encountered this problem because libminiupnpc has been updated to 19 on aur, and sunshine still depends on 18

Same problem here. Actually I had to downgrade miniupnpc (not from AUR but extra repository) from version 2.3.0-1 to 2.2.8-2

edit: Actually you can just rebuild the sunshine package from the AUR. It will dynamically link against your updated system library.

0xFFFFFFFFFFFFFFFFFF avatar Jan 26 '25 11:01 0xFFFFFFFFFFFFFFFFFF

If you want to the the libraries already on your system, you should build Sunshine from source. That has a much higher chance of compatibility than randomly modifying the binaries.

cathyjf avatar Jan 26 '25 11:01 cathyjf

By the way:

sudo ln -s /usr/lib/libminiupnpc.so.19 /usr/lib/libminiupnpc.so.18

work very well in aur/sunshine-beta-bin 2025.124.213717-1

NeroBlackstone avatar Jan 26 '25 11:01 NeroBlackstone

We rebuild sunshine every day in this repo. https://github.com/LizardByte/pacman-repo

ReenigneArcher avatar Jan 26 '25 12:01 ReenigneArcher

@NeroBlackstone Thank you

iHad168 avatar Jan 28 '25 01:01 iHad168

Has anyone successfully got the Arch builds working on SteamOS? The current pre-builts still exhibit the errors mentioned above on the latest SteamOS version (3.7x). Trying to build from source results in a bunch of errors (I'm probably doing something wrong).

Presumably there are performance advantages over the Flatpak?

GovSat1 avatar May 22 '25 22:05 GovSat1

Presumably there are performance advantages over the Flatpak?

Why would there be performance benefits?

ReenigneArcher avatar May 22 '25 23:05 ReenigneArcher