Sunshine
Sunshine copied to clipboard
symbol lookup error when installing Sunshine beta in SteamOS 3.6.19
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.
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.
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?
I encountered this problem because libminiupnpc has been updated to 19 on aur, and sunshine still depends on 18
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.
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.
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
We rebuild sunshine every day in this repo. https://github.com/LizardByte/pacman-repo
@NeroBlackstone Thank you
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?
Presumably there are performance advantages over the Flatpak?
Why would there be performance benefits?