Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

steam: switch to the newer steam-runtime packaging #87243

Merged
merged 2 commits into from Jun 2, 2020

Conversation

@euank
Copy link
Contributor

euank commented May 8, 2020

Valve has started releasing tarballs of the steam runtime. It seems a
lot easier to download and extract a single tarball than to download a
buncha debs, extract them, and splat em around a bit.

Let's just use the runtime they build. It's a buncha random binary
packages either way.

Also, the download url for their debs broke, so there's that too.

Motivation for this change

Valve deletes debs from their repos apparently (see #86892 and #86358).

@tadfisher suggested using the steam-runtime images valve builds in that thread too, and I think it's a great idea!

So yeah, that's what this PR does.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Note that I don't actually know how to test the steam-runtime stuff fully. I verified that steam-run seems to give me an environment that looks right? I think?

I verified that a sample game launched correctly (Factorio specifically) both via steam and via steam-run, and it ofc didn't launch outside of the chroot environment.

Running it did print this error: /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/setup.sh: line 22: zenity: command not found

I have no clue if that's new because I can't get the old steam package to work because one of the debs won't download.

@ofborg ofborg bot added the 6.topic: steam label May 8, 2020
Valve has started releasing tarballs of the steam runtime. It seems a
lot easier to download and extract a single tarball than to download a
buncha debs, extract them, and splat em around a bit.

Let's just use the runtime they build. It's a buncha random binary
packages anyway.

Also, the download url for their debs broke, so there's that too.
@euank euank force-pushed the euank:steam-runtime-update branch from 7ecb187 to 593c28b May 8, 2020

nativeBuildInputs = [ python2 dpkg stdenv.cc.bintools ];
src =
if steamArch == "amd64" then fetchurl {

This comment has been minimized.

Copy link
@euank

euank May 8, 2020

Author Contributor

I think steamArch might be subtly different now. amd64 now means download the amd64+i386 runtime snapshot because there isn't an x64-only one.

Before, iiuc, the steam-chrootenv would go out of its way to get the i386 runtime on amd64 hosts since amd64 didn't already include it. It seems like we can probably simplify that code in default.nix for the chrootenv a tiny bit now too!

@euank
Copy link
Contributor Author

euank commented May 9, 2020

cc @hrdinka @abbradar as the maintainers of this derivation.

@hrdinka
Copy link
Contributor

hrdinka commented May 14, 2020

@euank Thanks for the patch! This looks a lot better than what we have now. I am sorry for not responding earlier. I haven't found any time yet to test this. I will try to give it a closer look this weekend.

@hrdinka
Copy link
Contributor

hrdinka commented May 18, 2020

So far everything is working for me with this patch. I will give it a few more days for more testing and to checkout your problem with zenity (it’s actually part of the chrootenv and not the runtime, so it should work).

@hrdinka hrdinka merged commit a2889d6 into NixOS:master Jun 2, 2020
16 checks passed
16 checks passed
steam, steam.passthru.tests on aarch64-linux No attempt
Details
steam, steam.passthru.tests on x86_64-linux No attempt
Details
Evaluation Performance Report Evaluator Performance Report
Details
grahamcofborg-eval ^.^!
Details
grahamcofborg-eval-check-maintainers matching changed paths to changed attrs...
Details
grahamcofborg-eval-check-meta config.nix: checkMeta = true
Details
grahamcofborg-eval-darwin nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="870954a"; rev="870954a1da12bed63b6c7c53c8fec386fff9becb"; } ./pkgs/t
Details
grahamcofborg-eval-lib-tests nix-build --arg pkgs import ./. {} ./lib/tests/release.nix
Details
grahamcofborg-eval-nixos nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="870954a"; rev="870954a1da12bed63b6c7c53c8fec386fff9becb"; } ./nixos/
Details
grahamcofborg-eval-nixos-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="870954a"; rev="870954a1da12bed63b6c7c53c8fec386fff9becb"; } ./nixos/
Details
grahamcofborg-eval-nixos-options nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="870954a"; rev="870954a1da12bed63b6c7c53c8fec386fff9becb"; } ./nixos/
Details
grahamcofborg-eval-nixpkgs-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="870954a"; rev="870954a1da12bed63b6c7c53c8fec386fff9becb"; } ./pkgs/t
Details
grahamcofborg-eval-nixpkgs-tarball nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="870954a"; rev="870954a1da12bed63b6c7c53c8fec386fff9becb"; } ./pkgs/t
Details
grahamcofborg-eval-nixpkgs-unstable-jobset nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="870954a"; rev="870954a1da12bed63b6c7c53c8fec386fff9becb"; } ./pkgs/t
Details
grahamcofborg-eval-package-list nix-env -qa --json --file .
Details
grahamcofborg-eval-package-list-no-aliases nix-env -qa --json --file . --arg config { allowAliases = false; }
Details
@hrdinka
Copy link
Contributor

hrdinka commented Jun 2, 2020

I did some more testing including fresh Steam installs/configs, everything is working as expected. Thanks for this change, this is making things a lot easier.

@euank euank mentioned this pull request Jun 14, 2020
3 of 10 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.