NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.07k stars 14.05k forks source link

Package Request: `steamlink` #77026

Closed colemickens closed 8 months ago

colemickens commented 4 years ago

I'm enjoying NixOS on my Raspberry Pi 4. I would like to also run a Steam Link client on this.

I will try to take a look, but I don't know anything about Steam Link.

ghost commented 4 years ago

I am trying to package Steam Link at the moment. Steam Link is dependent on the libstdc++ library, which currently fails to build, see #79761. Until that is fixed I am going to try to get Steam Link to work on an older version of nixpkgs.

Luz commented 4 years ago

Was just trying to install steamlink on my rpi4, then realized it is not packaged yet. @smgb66 the issue for libstdc++ seems to be fixed, maybe we can build it now? How did u try to build it, is there some source or did you try to pick their *.deb file to build a package?

ghost commented 4 years ago

The steamlink package from the Raspbian repos contains an updater script that downloads a tarball from the link in: http://media.steampowered.com/steamlink/rpi/public_build.txt and extracts it to .local/share/SteamLink.

I fixed all of the dependency errors in a local nixpkgs repo but could never get it to run without crashing immediately. The repo is gone now though, because I accidentally wiped my microSD. You can take a look at my nixpkgs fork for an older version of the commits.

And I also think I got the libstdc++ libraries from stdenv.cc.cc, since the libstdc++ package has version 5 and steamlink needs version 6.

Unfortunately, I won't have the time to get SteamLink running on NixOS because of other responsibilties. I hope someone else can get around to though.

Luz commented 4 years ago

Thank you very much, good work!

So far I only

Now i'm probably stuck at the same point as you were, having problems with wrong shared library versions. /bin/bin/shell: Accessing a corrupted shared library /bin/bin/screenblank: Accessing a corrupted shared library

ghost commented 4 years ago

You can try running it with LD_DEBUG=all, it outputs additional debugging info about shared libraries. The issue is probably related to SteamLink loading the libraries in $out/lib and $out/bin/Qt-5.14.1/lib. We should really only be using libraries from nixpkgs to prevent version mismatches, I only added them to rpath for testing purposes.

Luz commented 4 years ago

I did not got any output on the LD_DEBUG=all prefix, when i executed the binaries, (but it indeed worked on the "ls" command i used later though). I agree, your suggestion about building stdcxx(6?) would be much cleaner.

stale[bot] commented 3 years ago

I marked this as stale due to inactivity. → More info

colemickens commented 3 years ago

uh, this is still important to me?

drewrisinger commented 3 years ago

Not 100% related, but with the recent release of Steam Link for x86_64-linux https://steamcommunity.com/app/353380/discussions/10/3106892760562833187/, I just managed to get a clean build of Steam Link for x86-64. It uses pre-compiled libraries for SDL2 & ffmpeg because Valve patched the versions that they use for Steam Link. It's going to be added to my NUR soon (https://github.com/drewrisinger/nur-packages/pull/78), I could add it to nixpkgs if there's interest.

Either way, testing would be appreciated b/c I don't have a Linux x86 NixOS machine on the same network as a steam machine.

I haven't looked at the raspberry pi version recently, but some of the Valve patches seem to relate to armv7 (Raspberry Pi 32-bit), so having these Qt patches available might help efforts to package steamlink for ARM/Raspberry Pi as well.

ChrisOboe commented 3 years ago

@drewrisinger I'm very interested in the x86_64-linux steamlink. I can't get your derivation running. I get the following error:

`error: builder for '/nix/store/c6iv3qz60as36bp16gf6g67d4xxvc3b0-qtsvg-5.14.2.drv' failed with exit code 1; last 3 log lines:

Error: detected mismatched Qt dependencies: /nix/store/7cnnzigp5ni68li1qv0g2fiiyqddpnpw-qtbase-5.14.2-dev /nix/store/fh8db88w9ic0v4cwdj8mj7whfhiyngj4-qtbase-5.14.2-dev `

drewrisinger commented 3 years ago

@ChrisOboe I'm happy to help you debug, but this might not be the proper forum for that, would be happy to help in my NUR repo/the PR. I'm not using the x86_64-linux steamlink myself currently, but just off the top of my head, a few tools to help you figure out why these qtbase-5.14.2-dev are both being included are:

At a quick glance, I'd guess that somehow one of my overrides or overlays isn't working properly, or mixing the overridden version w/ the non-overridden version.

stale[bot] commented 2 years ago

I marked this as stale due to inactivity. → More info

bryanasdev000 commented 2 years ago

Not stale.

Majiir commented 2 years ago

This repo has Flatpak build scripts and patches for Steam Link: https://github.com/flathub/com.valvesoftware.SteamLink

And here are tarballs with compiled binaries: https://repo.steampowered.com/steamlink/

SuperSandro2000 commented 1 year ago

I tried to package steamlink before and because of the qt patches I don't it is feasable to build it from source for us.

spikespaz commented 8 months ago

I tried to package steamlink before and because of the qt patches I don't it is feasable to build it from source for us.

Were you able to patch the binary version from a tarball either? I couldn't.

SuperSandro2000 commented 8 months ago

As it requires a patched version of Qt 5.14.1 and Qt is generally not working very well when mixing different versions, I am going to close this with wont fix. see https://github.com/flathub/com.valvesoftware.SteamLink/tree/beta/patches

AkechiShiro commented 6 months ago

Any way this situation could be improved today ? Or it will still stay as a won't fix, I don't understand why are you pointing at beta versions ? @SuperSandro2000

AkechiShiro commented 6 months ago

Maybe this solution would be a good compromise in case, we want to avoid having to override qt with patches : https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=steamlink

But I'm not sure if it's easily doable in Nix/

SuperSandro2000 commented 6 months ago

Any way this situation could be improved today? Or it will still stay as a won't fix

Still the same, they are still using an very old qt version with a gigantic patch.

I don't understand why are you pointing at beta versions?

That's just the default branch of the repo. Same situation in the stable tag shipped.

Maybe this solution would be a good compromise in case, we want to avoid having to override qt with patches : https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=steamlink

But I'm not sure if it's easily doable in Nix/

We can do that but for what? If we just download the flatpak, unpack it, fix it up with lots of ductape, unset all QT variables which might leak in from eg Plasma, then we might ad well use the flatpak.

AkechiShiro commented 6 months ago

Do you know any good examples of package using the flatpak in Nixpkgs @SuperSandro2000 just so I can see how it is being done and try and replicate for steam link. Has this issue of the qt version been reported upstream to Valve ?

Pointing it out here that this is a big problem is great but if upstream doesn't know that is hindering Nix(OS) users, I don't think they will ever change anything in the near future.

SuperSandro2000 commented 5 months ago

I don't know any package that does that.

Also I didn't see any issue in https://github.com/flathub/com.valvesoftware.SteamLink/issues/ that talks about the old qt version.

The Qt problem should be on any platform I think.