Closed colemickens closed 8 months 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.
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?
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.
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
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.
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.
I marked this as stale due to inactivity. → More info
uh, this is still important to me?
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.
@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 `
@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:
nix why-depends
: https://nixos.wiki/wiki/Nix_command/why-dependsnix-tree
: https://github.com/utdemir/nix-treeAt 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.
I marked this as stale due to inactivity. → More info
Not stale.
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/
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.
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.
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
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
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/
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.
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.
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.
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.