Explaining the current Steam Package build: Difference between revisions
imported>Fab m Update naming |
m Outdated |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{outdated|Steam's packaging has considerably changed since this article was written.}} | |||
This article should give insight about how steam is currently packaged and how and why it works like this. It also discusses what the problems are in packaging it and how we can approach solving them. | This article should give insight about how steam is currently packaged and how and why it works like this. It also discusses what the problems are in packaging it and how we can approach solving them. | ||
Line 5: | Line 6: | ||
== Nix problems and constraints == | == Nix problems and constraints == | ||
* We don't have /bin/bash and many scripts point there. Similarly for /usr/bin/python, for some functionality. | * We don't have <code>/bin/bash</code> and many scripts point there. Similarly for <code>/usr/bin/python</code>, for some functionality. | ||
* We don't have the dynamic loader in /lib | * We don't have the dynamic loader in <code>/lib</code> | ||
* The steam.sh script in $HOME could not be patched last | * The <code>steam.sh</code> script in <code>$HOME</code> could not be patched the last time an attempt was made, as it is always checked and rewritten by the Steam client. | ||
* The steam binary cannot be patched, | * The <code>steam</code> binary cannot be patched, as this is also checked by the Steam client. | ||
== Approaches == | == Approaches == | ||
Line 14: | Line 15: | ||
This is the current approach, documented here: http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html | This is the current approach, documented here: http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html | ||
* Pros: | * Pros: | ||
** | ** this method would allow us to have binaries in the expected paths without disrupting the system. | ||
** Steam itself, as well as Valve games and perhaps others like to checksum their executables, so patching does not work | ** Steam itself, as well as Valve games and perhaps others like to checksum their executables, so patching does not work. | ||
* Cons: | * Cons: | ||
** Performance might suffer from this, but we are not sure. | |||
** Kernel patch is required for SteamVR asynchronous reprojection.<ref>https://lvra.gitlab.io/docs/distros/nixos/#steamvr</ref><ref>https://github.com/NixOS/nixpkgs/issues/217119</ref> | |||
=== Link bash to /bin and glibc/lib to /lib and be happy === | === Link bash to /bin and glibc/lib to /lib and be happy === | ||
Line 40: | Line 43: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
You might also need patching some scripts. That all depends on each one. You can then press play from steam and if you're lucky that'll be it! | You might also need patching some scripts. That all depends on each one. You can then press play from steam and if you're lucky that'll be it! | ||
[[Category:Applications]] |