Sunshine
Sunshine copied to clipboard
rpm package does not work for Rocky Linux 9
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
Describe the Bug
This is an interesting project! I'm trying to install on Rocky Linux (which is the FOSS version of RHEL now that CentOS has transitioned to the upstream project known as CentOS stream).
If I download the most recent release RPM (v0.15.0) and try to install it I run into this error:
Error:
Problem: conflicting requests
- nothing provides libopusenc >= 0.2.1 needed by sunshine-0.15.0-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
So I go grab an RPM to install that package from here, and try again, but then I get a whole slew of unfulfilled dependencies.
Error:
Problem: package libavdevice-5.1.2-3.el9.x86_64 requires ffmpeg-libs(x86-64) = 5.1.2-3.el9, but none of the providers can be installed
- package libavdevice-5.1.2-3.el9.x86_64 requires libavutil.so.57()(64bit), but none of the providers can be installed
- package libavdevice-5.1.2-3.el9.x86_64 requires libavformat.so.59()(64bit), but none of the providers can be installed
- package libavdevice-5.1.2-3.el9.x86_64 requires libavutil.so.57(LIBAVUTIL_57)(64bit), but none of the providers can be installed
- package libavdevice-5.1.2-3.el9.x86_64 requires libavformat.so.59(LIBAVFORMAT_59)(64bit), but none of the providers can be installed
- package libavdevice-5.1.2-3.el9.x86_64 requires libavfilter.so.8()(64bit), but none of the providers can be installed
- package libavdevice-5.1.2-3.el9.x86_64 requires libavfilter.so.8(LIBAVFILTER_8)(64bit), but none of the providers can be installed
- package sunshine-0.15.0-1.x86_64 requires libavdevice >= 4.3, but none of the providers can be installed
- package ffmpeg-libs-5.1.2-3.el9.x86_64 requires librubberband.so.2()(64bit), but none of the providers can be installed
- conflicting requests
- nothing provides ladspa needed by rubberband-3.1.0-2.el9.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
Expected Behavior
I expect the RPM to resolve the dependencies. Or at the least I expect the documentation to state which Linux flavors/versions the rpm is expected to work with.
Additional Context
The deb works in my hands on Ubuntu Jammy. I'm trying to install this in an Apptainer container.
Host Operating System
Linux
Operating System Version
Rocky Linux 9.0
Architecture
64 bit
Sunshine commit or version
0.15.0
Package
Linux - rpm
GPU Type
none (software encoding)
GPU Model
na
GPU Driver/Mesa Version
na
Capture Method (Linux Only)
na
Relevant log output
No response
For the RPM package the dependencies are in RPM Fusion. https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/installation.html#rpm-package
You could also try the Flatpak package. https://flatpak.org/setup/Rocky%20Linux https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/installation.html#flatpak-package https://github.com/istori1/Easy-Tan
Thanks for the quick response. I should have specified that I installed the rpm fusion repo and performed and dnf update before trying to install the rpm. Flatpack is a good idea, but I don't think it is going to work in a containerized installation since it is basically another type of containerized installation.
Or at the least I expect the documentation to state which Linux flavors/versions the rpm is expected to work with.
That's an impossible task. https://en.m.wikipedia.org/wiki/List_of_Linux_distributions
We do our best to support the mainstream ones though.
Fair enough. Let me suggest that RHEL, and by extension Rocky and CentOS are pretty mainstream. You've got instructions for PacMan (Arch) so, if I were tasked to make a list, I would suggest the following as being more popular than that distro and worthy of consideration for documentation.
- Alma -back to 8
- Alpine -back to 3.13 (if you are interested in this project being containerized which it seems you are)
- Arch (I guess? hard to support a rolling release model)
- CentOS -back to 7
- Debian -back to Buster
- Fedora -back to 35
- SUSE leap -back to 15.3
- RHEL -back to 7
- Rocky back to 8
- Ubuntu -back to Xenial
- Mint -back to 18 (I guess as a derivative of Ubuntu? I think it is very popular with the Desktop crowd.)
I realize this is a lot of work. For now I'll probably just base a container on Ubuntu Jammy since it seems that is well supported. Thanks!
Also, btw this is kindof a lot to expect. Maybe it would be good to just have a note to say which system each installation method had been tested on. Like if the rpm is just tested on Fedora 37 maybe just have a note that says tested on Fedora 37. :smile:
It's interesting that you mention this, while also mentioning Rocky Linux. I actually had almost this same conversations with one of the core development engineers for Rocky Linux a while back. At the time it was due to the issues users of Arch Linux were facing with the community version in the AUR. His suggestion was actually to only provide the source code and let the community handle packaging most of these.
With that said, it doesn't mean we won't provide any instruction for it but I don't know if we'll provide packages for all these distros. In fact packaging even for Ubuntu is challenging since different versions ship with different dependencies. Ideally we ship a static package that doesn't rely on the distro's included packages, but I don't know what changes that requires to our build process.
We've had a lot of discussions in our dev chat about how to handle packaging in Linux and the general consensus is that we want to drop the packages except for AppImage and flatpak (once they are in a more proven state).
The note about testing is a bit easier to accomplish but testing is also something that is quite challenging due to all the possible configurations (distro and distro version, software encoding, nvidia gpu, amd gpu, X11, KMS, etc.). I can say that when I make major changes to the build process I test this on Linux currently (all VMs with software encoding only and X11 only, Ubuntu, Fedora, Manjaro). One of these days I will build a better test machine with both Nvidia and AMD gpu, but it's not available right now.
If you'd like to make any improvements to our docs, the source is included in this repo. We'll review and accept a PR assuming the changes actually add value.
We also have this category in discussions for discussing various builds. https://github.com/LizardByte/Sunshine/discussions/categories/builds
So I go grab an RPM to install that package from here, and try again, but then I get a whole slew of unfulfilled dependencies.
Since this one was build for EL8 it's no surprise that it won't work on EL9.
The dirty solution
Install one from Fedora 36 instead:
dnf install https://archives.fedoraproject.org/pub/fedora/linux/releases/36/Everything/x86_64/os/Packages/l/libopusenc-0.2.1-8.fc36.x86_64.rpm
Afterwards sunshine.rpm installs fine, at least if the repositories CRB, EPEL, and rpmfusion are enabled.
The clean solution
Either rebuild the Fedora package above for EL9 yourself or request it on EPEL, and as soon as it is available sunshine.rpm should install fine.
https://docs.fedoraproject.org/en-US/epel/epel-package-request/
ladspa in particular is provided by CRB repository:
$ sudo dnf in --nobest ffmpeg-free
Rocky Linux 9 - BaseOS 6.8 kB/s | 3.6 kB 00:00
Rocky Linux 9 - AppStream 5.1 kB/s | 4.1 kB 00:00
Rocky Linux 9 - CRB 1.3 MB/s | 2.0 MB 00:01
Dependencies resolved.
================================================================================
Package Arch Version Repo Size
================================================================================
Installing:
ffmpeg-free x86_64 5.1.2-2.el9 epel 1.7 M
Installing dependencies:
SDL2 x86_64 2.0.20-2.el9 appstream 606 k
codec2 x86_64 1.0.3-1.el9 epel 637 k
fftw-libs-double x86_64 3.3.8-12.el9 appstream 908 k
highway x86_64 1.0.1-2.el9 epel 311 k
ilbc x86_64 3.0.4-1.el9 epel 51 k
intel-mediasdk x86_64 21.3.5-1.el9 epel 2.6 M
ladspa x86_64 1.13-28.el9 crb 47 k
leptonica x86_64 1.80.0-4.el9.1 appstream 1.1 M
libaom x86_64 3.5.0-2.el9 epel 1.7 M
libass x86_64 0.17.0-1.el9 epel 116 k
libavcodec-free x86_64 5.1.2-2.el9 epel 1.9 M
libavdevice-free x86_64 5.1.2-2.el9 epel 80 k
libavfilter-free x86_64 5.1.2-2.el9 epel 1.4 M
libavformat-free x86_64 5.1.2-2.el9 epel 1.1 M
libavutil-free x86_64 5.1.2-2.el9 epel 320 k
libbluray x86_64 1.3.4-1.el9 epel 171 k
libbs2b x86_64 3.1.0-27.el9 epel 28 k
libchromaprint x86_64 1.5.1-1.el9 epel 39 k
libdav1d x86_64 1.0.0-2.el9 epel 562 k
libdc1394 x86_64 2.2.6-7.el9 epel 127 k
libdecor x86_64 0.1.0-3.el9 appstream 40 k
libjxl x86_64 0.7.0-1.el9 epel 957 k
libmodplug x86_64 1:0.8.9.0-13.el9 epel 171 k
libmysofa x86_64 1.2.1-1.el9 epel 42 k
libopenmpt x86_64 0.6.6-1.el9 epel 639 k
libpostproc-free x86_64 5.1.2-2.el9 epel 56 k
libraw1394 x86_64 2.1.2-14.el9 epel 65 k
libshaderc x86_64 2022.2-2.el9 appstream 960 k
libsodium x86_64 1.0.18-8.el9 epel 161 k
libswresample-free x86_64 5.1.2-2.el9 epel 64 k
libswscale-free x86_64 5.1.2-2.el9 epel 185 k
libudfread x86_64 1.1.2-2.el9 epel 33 k
libunwind x86_64 1.6.2-1.el9 epel 67 k
libva x86_64 2.11.0-5.el9 appstream 101 k
libvmaf x86_64 2.3.0-2.el9 epel 177 k
lpcnetfreedv x86_64 0.2-11.el9 epel 7.3 M
lv2 x86_64 1.18.8-4.el9 epel 90 k
openal-soft x86_64 1.19.1-16.el9 appstream 533 k
openpgm x86_64 5.2.122-28.el9 epel 176 k
rav1e-libs x86_64 0.5.1-5.el9 epel 913 k
rubberband x86_64 3.1.0-2.el9 epel 366 k
soxr x86_64 0.1.3-11.el9 epel 82 k
spirv-tools-libs x86_64 2022.2-3.el9 appstream 1.3 M
srt-libs x86_64 1.4.4-1.el9 epel 291 k
svt-av1-libs x86_64 0.9.0-1.el9 epel 1.7 M
tesseract x86_64 4.1.1-7.el9 appstream 1.3 M
tesseract-langpack-eng noarch 4.1.0-3.el9 appstream 1.7 M
tesseract-tessdata-doc noarch 4.1.0-3.el9 appstream 13 k
vamp-plugin-sdk x86_64 2.9.0-4.el9 epel 171 k
vapoursynth-libs x86_64 57-1.el9 epel 503 k
vid.stab x86_64 1.1.0-14.20201110gitf9166e9.el9 epel 49 k
zeromq x86_64 4.3.4-1.el9 epel 431 k
zimg x86_64 3.0.3-1.el9 epel 275 k
Installing weak dependencies:
jxl-pixbuf-loader x86_64 0.7.0-1.el9 epel 53 k
Transaction Summary
================================================================================
Install 55 Packages
Total download size: 36 M
Installed size: 109 M
This issue is stale because it has been open for 90 days with no activity. Comment or remove the stale label, otherwise this will be closed in 10 days.
This issue was closed because it has been stalled for 10 days with no activity.