From c5d85dbbe57d0a1e541dec5258a05eb0a55e922c Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Mon, 11 Sep 2023 20:27:16 +0100 Subject: [PATCH] docs: Adjust for re-labelling of the Steam Linux Runtime tools App 1070560: was SLR, now SLR 1.0 (scout) App 1391110: was SLR - soldier, now SLR 2.0 (soldier) App 1628350: was SLR - sniper, now SLR 3.0 (sniper) The more generic name "Steam Linux Runtime" now refers to the whole container runtime ecosystem. Signed-off-by: Simon McVittie <smcv@collabora.com> --- README.md | 5 +- bin/launch-client.md | 3 +- bin/launcher-interface-0.md | 2 +- docs/container-runtime.md | 33 ++++++++---- docs/distro-assumptions.md | 3 +- docs/slr-for-game-developers.md | 54 ++++++++++--------- docs/steam-compat-tool-interface.md | 16 +++--- pressure-vessel/README.md | 2 +- pressure-vessel/testing-multi-gpu.md | 15 +++--- .../runtimes/scout-on-soldier/README.md | 6 +-- .../runtimes/sniper/README.md | 4 +- .../runtimes/soldier/README.md | 7 +-- 12 files changed, 87 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index 496fcc585..86c8e89a9 100644 --- a/README.md +++ b/README.md @@ -37,10 +37,11 @@ pressure-vessel — putting Steam in containers The `pressure-vessel/` subdirectory of this project contains the pressure-vessel utilities, which are used by Steam's -[Steam Linux Runtime](https://steamdb.info/app/1070560/depots/) +[Steam Linux Runtime (container runtime)](docs/container-runtime.md) compatibility tool to run games in individual game-specific containers. -For background on pressure-vessel and SteamLinuxRuntime, please see: +For background on pressure-vessel and the Steam Linux Runtime, please see: +* [docs/container-runtime.md](docs/container-runtime.md) * <https://github.com/ValveSoftware/steam-runtime/tree/HEAD/doc> * <https://archive.fosdem.org/2020/schedule/event/containers_steam/> * <https://steamcommunity.com/app/221410/discussions/0/1638675549018366706/> diff --git a/bin/launch-client.md b/bin/launch-client.md index e61e768db..1b580b3a5 100644 --- a/bin/launch-client.md +++ b/bin/launch-client.md @@ -434,7 +434,8 @@ like: -- \ wine winedbg notepad.exe -Similarly, for a Steam game that runs under the "Steam Linux Runtime" +Similarly, for a Steam game that runs under the +"Steam Linux Runtime 1.0 (scout)" compatibility tool, if you set its Steam Launch Options to STEAM_COMPAT_LAUNCHER_SERVICE=scout-in-container %command% diff --git a/bin/launcher-interface-0.md b/bin/launcher-interface-0.md index 9f79350db..c109bd74d 100644 --- a/bin/launcher-interface-0.md +++ b/bin/launcher-interface-0.md @@ -40,7 +40,7 @@ If more than one name is listed, they are treated as equivalent names for the same compatibility tool, and the command server will be activated if Steam requests any of the given names: for example, `scout-in-container:scout-on-soldier:1070560` could all be used as names -for the "Steam Linux Runtime" compatibility tool. +for the "Steam Linux Runtime 1.0 (scout)" compatibility tool. If the environment variable does not match any of the specified tool names, **steam-runtime-launcher-interface-0** runs the *COMMAND* diff --git a/docs/container-runtime.md b/docs/container-runtime.md index fd52e999a..a763752b3 100644 --- a/docs/container-runtime.md +++ b/docs/container-runtime.md @@ -37,7 +37,7 @@ GPU hardware. The Steam Play compatibility tools automatically run pressure-vessel when necessary. -## <span id="soldier">Steam Runtime 2, `soldier`</span> +## <span id="soldier">Steam Linux Runtime 2.0 (soldier)</span> [soldier]: #soldier @@ -62,7 +62,7 @@ Native Linux games that require soldier cannot currently be released on Steam. The next-generation runtime for native Linux games is intended to be Steam Runtime 3 `sniper` (see [below][sniper]). -The *Steam Linux Runtime - soldier* compatibility tool, app ID 1391110, +The *Steam Linux Runtime 2.0 (soldier)* compatibility tool, app ID 1391110, is automatically downloaded to your Steam library as `steamapps/common/SteamLinuxRuntime_soldier` when you select a version of Proton that requires it, or the *Steam Linux Runtime* compatibility @@ -74,7 +74,10 @@ It can also be installed by running this command: Documentation in the `steamrt` "metapackage" provides [more information about soldier](https://gitlab.steamos.cloud/steamrt/steamrt/-/blob/steamrt/soldier/README.md). -## <span id="scout-on-soldier">Steam Linux Runtime (scout-on-soldier)</span> +Before September 2023, this compatibility tool was labelled +*Steam Linux Runtime - soldier*. + +## <span id="scout-on-soldier">Steam Linux Runtime 1.0 (scout)</span> [scout-on-soldier]: #scout-on-soldier @@ -92,8 +95,8 @@ assumptions. This is not a stable situation: a game that happened to work in Ubuntu 20.04 could easily be broken by a routine upgrade to Ubuntu 22.04. -The *Steam Linux Runtime* compatibility tool, app ID 1070560, uses the -same container technology as `soldier` to mitigate this problem. +The *Steam Linux Runtime 1.0 (scout)* compatibility tool, app ID 1070560, +uses the same container technology as `soldier` to mitigate this problem. It will automatically be downloaded to your Steam library as `steamapps/common/SteamLinuxRuntime` if it is selected to run a particular game, or if a game requires it. @@ -101,20 +104,25 @@ It can also be installed by running this command: steam steam://install/1070560 -It is implemented by entering a [`soldier`](#soldier) container, and then +Unlike the [soldier](#soldier) and [sniper](#sniper) container runtimes, +it is implemented by entering a [`soldier`](#soldier) container, and then setting up a [`scout` `LD_LIBRARY_PATH` runtime][ldlp] inside that container. -The Steam Deck automatically uses the Steam Linux Runtime container for -many native Linux games. +The Steam Deck automatically uses the *Steam Linux Runtime 1.0 (scout)* +container for many native Linux games. In the past some games have also defaulted to being run in this container on Linux desktop systems, for example [Dota 2][] between [its January 2022 update][Dota 2 scout SLR] and [mid 2023][Dota 2 sniper]. This mechanism is not currently available for third-party games on desktop Linux, but users can opt-in to running specific games in the -Steam Linux Runtime container via *Properties* → *Compatibility*. +Steam Linux Runtime 1.0 (scout) container via *Properties* → *Compatibility*. + +Before September 2023, this compatibility tool was labelled +*Steam Linux Runtime*. +The old name might still appear in some contexts. -## <span id="sniper">Steam Runtime 3, `sniper`</span> +## <span id="sniper">Steam Linux Runtime 3.0 (sniper)</span> [sniper]: #sniper @@ -138,7 +146,7 @@ Early adopters of this mechanism include [Endless Sky][] since [early/mid 2023][Endless Sky on Sniper] and [Dota 2][] since [mid 2023][Dota 2 sniper], -The *Steam Linux Runtime - sniper* compatibility tool, app ID 1628350, +The *Steam Linux Runtime 3.0 - sniper* compatibility tool, app ID 1628350, will automatically be downloaded to your Steam library as `steamapps/common/SteamLinuxRuntime_sniper` if a game requires it. It can also be installed by running this command: @@ -148,6 +156,9 @@ It can also be installed by running this command: Documentation in the `steamrt` "metapackage" provides [more information about sniper](https://gitlab.steamos.cloud/steamrt/steamrt/-/blob/steamrt/sniper/README.md). +Before September 2023, this compatibility tool was labelled +*Steam Linux Runtime - sniper*. + ## <span id="medic">Steam Runtime 4, `medic`</span> [medic]: #medic diff --git a/docs/distro-assumptions.md b/docs/distro-assumptions.md index 0f566ff27..9da9e705e 100644 --- a/docs/distro-assumptions.md +++ b/docs/distro-assumptions.md @@ -563,7 +563,8 @@ and provide the information requested in the issue template It is usually best to start by trying a relatively small and simple native Linux game, preferably a well-known free or demo game, -by forcing it to run under the "Steam Linux Runtime" compatibility tool. +by forcing it to run under the +*Steam Linux Runtime 1.0 (scout)* compatibility tool. Some games that have been particularly useful in the past for this include: * [Floating Point][] (very small, low hardware requirements, 32-bit, OpenGL) diff --git a/docs/slr-for-game-developers.md b/docs/slr-for-game-developers.md index d59ed5bc6..0cb62b52e 100644 --- a/docs/slr-for-game-developers.md +++ b/docs/slr-for-game-developers.md @@ -70,7 +70,8 @@ However, many games require newer libraries than Ubuntu 12.04, and many game developers are not building their games in a strictly 'scout'-based environment. -As a result, the Steam Linux Runtime compatibility tool runs games +As a result, the *Steam Linux Runtime 1.0 (scout)* compatibility tool +runs games in a hybrid environment where the majority of libraries are taken from Steam Runtime version 2, codenamed soldier, which is based on Debian 10 (2019). @@ -85,8 +86,9 @@ Runtime 1 'scout' Docker container. By default, Steam will run them directly on the host system, providing compatibility with scout by using the same `LD_LIBRARY_PATH`-based scout runtime that is used to run Steam itself. -If the user selects the *Steam Linux Runtime* compatibility tool in the -game's properties, then Steam will launch a *Steam Linux Runtime - soldier* +If the user selects the *Steam Linux Runtime 1.0 (scout)* +compatibility tool in the +game's properties, then Steam will launch a *Steam Linux Runtime 2.0 (soldier)* container, then use the `LD_LIBRARY_PATH`-based scout runtime inside that container to provide ABI compatibility for the game. @@ -114,7 +116,7 @@ Dota 2, [Retroarch][Retroarch on sniper]. If it is useful to run in a newer container during development, -the *Steam Linux Runtime - sniper* compatibility tool can be used to +the *Steam Linux Runtime 3.0 (sniper)* compatibility tool can be used to achieve this. #### <span id="soldier">Native Linux games targeting Steam Runtime 2 'soldier'</span> @@ -134,10 +136,10 @@ instructions that refer to `sniper` should usually work. Recent versions of Proton require recent Linux shared library stacks. To ensure that these are available, even when running on an older operating system, Steam automatically runs Proton 8.0 or later -inside a *Steam Linux Runtime - sniper* container. +inside a *Steam Linux Runtime 3.0 (sniper)* container. Similarly, Proton versions 5.13 to 7.0 use a -*Steam Linux Runtime - soldier* container. +*Steam Linux Runtime 2.0 (soldier)* container. Future versions of Proton might switch to Steam Runtime 4 or later. @@ -154,7 +156,7 @@ It is sometimes useful to try beta versions of the various compatibility tools. This is the same as [switching a game to a beta branch][], except that instead of accessing the properties of the game, you would access the -properties of a compatibility tool such as *Steam Linux Runtime - soldier* +properties of a compatibility tool such as *Steam Linux Runtime 2.0 (soldier)* or *Proton 6.3*. ## Launching Steam games in a Steam Linux Runtime container @@ -165,15 +167,17 @@ To run Windows games using Proton in a Steam Linux Runtime container: * Select `Force the use of a specific Steam Play compatibility tool` * Select Proton 5.13 or later -To run Linux games in a Steam Linux Runtime container: +To run Linux games in a *Steam Linux Runtime 1.0 (scout)* container: * Edit the Properties of the game in the Steam client * Select `Force the use of a specific Steam Play compatibility tool` - * Select `Steam Linux Runtime` + * If possible, select `Steam Linux Runtime 1.0 (scout)` + * If that option is not available, select `Steam Linux Runtime` -This will automatically download *Steam Linux Runtime - soldier*, -together with Proton and/or *Steam Linux Runtime*, into your default -Steam library. +This will automatically download *Steam Linux Runtime 2.0 (soldier)* +or *Steam Linux Runtime 3.0 (sniper)*, +together with Proton and/or *Steam Linux Runtime 1.0 (scout)*, +into your default Steam library. ## <span id="s-r-launch-options">Using steam-runtime-launch-options</span> @@ -223,9 +227,9 @@ an easy way to test that the compatibility tool is working correctly. For a more scriptable version of this, run one of these commands: - * Steam Linux Runtime (scout-on-soldier): `steam steam://install/1070560` - * Steam Linux Runtime - soldier: `steam steam://install/1391110` - * Steam Linux Runtime - sniper: `steam steam://install/1628350` + * Steam Linux Runtime 1.0 (scout): `steam steam://install/1070560` + * Steam Linux Runtime 2.0 (soldier): `steam steam://install/1391110` + * Steam Linux Runtime 3.0 (sniper): `steam steam://install/1628350` * Proton Experimental: `steam steam://install/1493710` * Proton 8.0: `steam steam://install/2348590` * Proton 7.0: `steam steam://install/1887720` @@ -294,14 +298,15 @@ $ /path/to/steamlibrary/steamapps/common/SteamLinuxRuntime_sniper/run \ Exporting the environment variable `PRESSURE_VESSEL_TERMINAL=tty` is equivalent to using the `--terminal=tty` option. -### <span id="commands-in-scout-on-soldier">Running commands in the scout Steam Linux Runtime environment</span> +### <span id="commands-in-scout-on-soldier">Running commands in the Steam Linux Runtime 1.0 (scout) environment</span> Running a game that was compiled for Steam Runtime 1 'scout' in the scout-on-soldier container is similar to a pure soldier container, but an -extra step is needed: the `SteamLinuxRuntime` compatibility tool +extra step is needed: the *Steam Linux Runtime 1.0 (scout)* compatibility tool needs to make older libraries like `libssl.so.1.0.0` available to the game. -You will also need to ensure that the `SteamLinuxRuntime` compatibility +You will also need to ensure that the *Steam Linux Runtime 1.0 (scout)* +compatibility tool is visible in the container environment: Steam normally does this automatically, but outside Steam it can be necessary to do this yourself. This means the commands required are not the same as for soldier or @@ -464,12 +469,12 @@ Or, to activate this programmatically, set the `STEAM_COMPAT_LAUNCHER_SERVICE` environment variable to the `compatmanager_layer_name` listed in the `toolmanifest.vdf` of the compatibility tool used to run a game: -* `container-runtime` for "Steam Linux Runtime - soldier" or - "Steam Linux Runtime - sniper" +* `container-runtime` for "Steam Linux Runtime 2.0 (soldier)" or + "Steam Linux Runtime 3.0 (sniper)" * `proton` for any version of Proton that supports it (7.0 or later) -* `scout-in-container` for "Steam Linux Runtime" +* `scout-in-container` for "Steam Linux Runtime 1.0 (scout)" When running games through Steam, you can either export something like `STEAM_COMPAT_LAUNCHER_SERVICE=container-runtime` for the whole Steam @@ -771,8 +776,9 @@ environment. ## Running in a modified Platform or SDK environment -The default `Platform` environment provided by *Steam Linux Runtime - soldier* -and *Steam Linux Runtime - sniper* in the `soldier_platform_*` or +The default `Platform` environment provided by +*Steam Linux Runtime 2.0 (soldier)* +and *Steam Linux Runtime 3.0 (sniper)* in the `soldier_platform_*` or `sniper_platform_*` directory is in a format that has been optimized for distribution through the Steampipe CDN, and cannot easily be modified: most files' names, permissions and checksums are checked against a manifest @@ -807,7 +813,7 @@ instead of `--runtime=sdk`. [Upgrading pressure-vessel]: #upgrading-pressure-vessel The recommended version of `pressure-vessel` is the one that is included -in the *Steam Linux Runtime - sniper* depot, and other versions are +in the *Steam Linux Runtime 3.0 (sniper)* depot, and other versions are not necessarily compatible with the container runtime and scripts in the depot. However, it can sometimes be useful for developers and testers to upgrade diff --git a/docs/steam-compat-tool-interface.md b/docs/steam-compat-tool-interface.md index fd772f08d..caf8cf347 100644 --- a/docs/steam-compat-tool-interface.md +++ b/docs/steam-compat-tool-interface.md @@ -98,8 +98,8 @@ is a [VDF][] text file with one top-level entry, `manifest`. * `container-runtime`: Any self-contained Steam container runtime environment such as - "[Steam Linux Runtime - soldier][soldier]" (app ID 1391110) or - "[Steam Linux Runtime - sniper][sniper]" (app ID 1628350) + "[Steam Linux Runtime 2.0 (soldier)][soldier]" (app ID 1391110) or + "[Steam Linux Runtime 3.0 (sniper)][sniper]" (app ID 1628350) * `proton`: @@ -111,14 +111,14 @@ is a [VDF][] text file with one top-level entry, `manifest`. Steam Runtime 1 'scout' [`LD_LIBRARY_PATH` runtime][ldlp] as a layer over a `container-runtime` - (see [Steam Linux Runtime (scout-on-soldier)][scout-on-soldier]) + (see [Steam Linux Runtime 1.0 (scout)][scout-on-soldier]) * `require_tool_appid`: If set, this compatibility tool needs to be wrapped in another compatibility tool, specified by its numeric Steam app ID. For - example, Proton 5.13 needs to be wrapped by "Steam Linux Runtime - - soldier", so it sets this field to `1391110`. + example, Proton 5.13 needs to be wrapped by + "Steam Linux Runtime 2.0 (soldier)", so it sets this field to `1391110`. * `unlisted`: @@ -249,7 +249,7 @@ Some environment variables are set by Steam, including: passed to Steam itself. For compatibility tools that provide a Linux environment, such as - "[Steam Linux Runtime - soldier][soldier]", the debugging commands + "[Steam Linux Runtime 2.0 (soldier)][soldier]", the debugging commands should receive an execution environment that is equivalent to the execution environment of the game itself. For compatibility tools that provide a non-Linux environment, @@ -305,8 +305,8 @@ the environment variables are set as described for the "outermost" tool, which can change them if required before it invokes the "innermost" tool (although most should not be changed). -For example, when using Proton with "Steam Linux Runtime - soldier", the -"outer" compatibility tool "Steam Linux Runtime - soldier" is run with +For example, when using Proton with "Steam Linux Runtime 2.0 (soldier)", the +"outer" compatibility tool "Steam Linux Runtime 2.0 (soldier)" is run with `LD_LIBRARY_PATH` set by the Steam Runtime to point to mixed host and scout libraries. After setting up the container, it runs the "inner" compatibility tool (Proton) with an entirely new `LD_LIBRARY_PATH` diff --git a/pressure-vessel/README.md b/pressure-vessel/README.md index 2d5c2cb95..02f199892 100644 --- a/pressure-vessel/README.md +++ b/pressure-vessel/README.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: MIT pressure-vessel is a bit like a simplified version of Flatpak for Steam games. -For background on pressure-vessel and SteamLinuxRuntime, please see: +For background on pressure-vessel and the Steam Linux Runtime, please see: * [container runtime documentation](../docs/container-runtime.md) * [information about pressure-vessel](../docs/pressure-vessel.md) diff --git a/pressure-vessel/testing-multi-gpu.md b/pressure-vessel/testing-multi-gpu.md index 7c2b53f6c..15684e0b0 100644 --- a/pressure-vessel/testing-multi-gpu.md +++ b/pressure-vessel/testing-multi-gpu.md @@ -86,12 +86,12 @@ a native Linux port that can be used to compare native Linux with Proton. Install the game. If it's a native Linux game, right-click on the game in your Steam -library, open its Properties and select the "Steam Linux Runtime" +library, open its Properties and select the "Steam Linux Runtime 1.0 (scout)" compatibility tool. Wait for it to install. Change the compatibility tool again, and select "Proton 5.13-6" (or if a newer version is available, use that). Wait for it to install. -"Steam Linux Runtime - soldier" will also be installed as a side-effect. +"Steam Linux Runtime 2.0 (soldier)" will also be installed as a side-effect. Testing the host system ----------------------- @@ -134,10 +134,12 @@ For each game you want to test: you expected. * For native Linux games only: - in its Properties, set the compatibility tool to "Steam Linux Runtime". + in its Properties, set the compatibility tool to + "Steam Linux Runtime 1.0 (scout)" if available, or "Steam Linux Runtime" + otherwise. Try running the game, and note whether it runs on the GPU that you expected. Copy the log file from - `steamapps/common/SteamLinuxRuntime/var/slr-latest.log` + `steamapps/common/SteamLinuxRuntime_soldier/var/slr-latest.log` (the real filename will start with `slr-app319630-` or similar). * In its Properties, set the compatibility tool to Proton 5.0 or older @@ -225,8 +227,9 @@ For each game you want to test: * For native Linux games only: if you are using the branch of Flatpak that has the new features needed - by pressure-vessel, also try "Steam Linux Runtime". Copy - `steamapps/common/SteamLinuxRuntime/var/slr-latest.log`. + by pressure-vessel, also try "Steam Linux Runtime 1.0 (scout)", + or if that name is not available, "Steam Linux Runtime". Copy + `steamapps/common/SteamLinuxRuntime_soldier/var/slr-latest.log`. * If you are using the branch of Flatpak that has the new features needed by pressure-vessel, also try the official Proton 5.13 build. Copy diff --git a/subprojects/container-runtime/runtimes/scout-on-soldier/README.md b/subprojects/container-runtime/runtimes/scout-on-soldier/README.md index f00823e23..adc9b6474 100644 --- a/subprojects/container-runtime/runtimes/scout-on-soldier/README.md +++ b/subprojects/container-runtime/runtimes/scout-on-soldier/README.md @@ -1,5 +1,5 @@ -Container-based Steam Runtime v1 'scout' (scout-on-soldier) -=========================================================== +Steam Linux Runtime 1.0 (scout) +=============================== This container-based release of the Steam Runtime is enabled on a per-title basis by forcing its use in the title's Properties dialog, @@ -12,7 +12,7 @@ Release notes ------------- Please see -<https://gitlab.steamos.cloud/steamrt/steamrt/-/wikis/SteamLinuxRuntime-container-release-notes> +<https://gitlab.steamos.cloud/steamrt/steamrt/-/wikis/Steam-Linux-Runtime-1.0-(scout)-release-notes> Known issues ------------ diff --git a/subprojects/container-runtime/runtimes/sniper/README.md b/subprojects/container-runtime/runtimes/sniper/README.md index c2f9e4bb2..4317a38c9 100644 --- a/subprojects/container-runtime/runtimes/sniper/README.md +++ b/subprojects/container-runtime/runtimes/sniper/README.md @@ -1,5 +1,5 @@ -Container based Steam Runtime 3 'sniper' -======================================== +Steam Linux Runtime 3.0 (sniper) +================================ This container-based release of the Steam Runtime is used for native Linux games, and for Proton 8.0+. diff --git a/subprojects/container-runtime/runtimes/soldier/README.md b/subprojects/container-runtime/runtimes/soldier/README.md index 92e58ead5..9c88381b1 100644 --- a/subprojects/container-runtime/runtimes/soldier/README.md +++ b/subprojects/container-runtime/runtimes/soldier/README.md @@ -1,7 +1,8 @@ -Container based Steam Runtime 2 'soldier' -========================================= +Steam Linux Runtime 2.0 (soldier) +================================= -This container-based release of the Steam Runtime is used for Proton 5.13+. +This container-based release of the Steam Runtime is used for Proton 5.13, +6.3 and 7.0, and as part of *Steam Linux Runtime 1.0 (scout)*. For general information please see <https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/container-runtime.md> -- GitLab