Sunshine icon indicating copy to clipboard operation
Sunshine copied to clipboard

rpm package does not work for Rocky Linux 9

Open GodloveD opened this issue 2 years ago • 7 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

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

GodloveD avatar Nov 03 '22 21:11 GodloveD

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

istori1 avatar Nov 03 '22 22:11 istori1

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.

GodloveD avatar Nov 03 '22 23:11 GodloveD

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.

ReenigneArcher avatar Nov 03 '22 23:11 ReenigneArcher

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!

GodloveD avatar Nov 04 '22 14:11 GodloveD

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:

GodloveD avatar Nov 04 '22 14:11 GodloveD

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

ReenigneArcher avatar Nov 04 '22 15:11 ReenigneArcher

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/

axelsommerfeldt avatar Dec 04 '22 16:12 axelsommerfeldt

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

CoolSpot avatar Dec 30 '22 22:12 CoolSpot

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.

LizardByte-bot avatar Mar 31 '23 10:03 LizardByte-bot

This issue was closed because it has been stalled for 10 days with no activity.

LizardByte-bot avatar Apr 11 '23 10:04 LizardByte-bot