Skip to content
Snippets Groups Projects
Simon McVittie's avatar
Simon McVittie authored
Previously we were setting `filter_exclusive_priority` to 1 for all
"pure" (non-layered) container runtimes as per steamrt/tasks#426,
but in fact that was an oversight. Instead, we need to set a unique
priority for each distinct ABI (scout, soldier, sniper and so on).

This is because `Properties → Compatibility → Force the use of…`
lists all compatibility tools that have a `filter_exclusive_priority`
equal to the one that has been set on the app/game. We don't want
to list SLR 2.0 (soldier) for games that require the
Steam Runtime 3 (sniper) ABI, and we don't want to list a possible
future SLR 4 (medic) for sniper games either.

We assume here that future runtimes will follow the pattern set by
steamrt5 and have boring, pragmatic codenames. If we reach steamrt9
(which we should start work on in around 2031, assuming we continue
to do one Steam Runtime per Debian release) without the design having
changed, then we will need to do some renumbering at that point.

steamrt/tasks#597

Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
47a13f17
History

steam-runtime-tools — Steam Runtime integration for the Steam client

The steam-runtime-tools library provides low-level Unix-specific tools and functionality for the Steam client, including the pressure-vessel tool that runs Steam games in containers.

To support multiple architectures (currently only i386, x86_64 and aarch64 are supported), you will need to build it once for each architecture and install at least the helper tools in /usr/libexec/steam-runtime-tools-0 (the libsteam-runtime-tools-0-helpers package) for every architecture in parallel.

The helper tools are located relative to the shared library, so it's OK to bundle steam-runtime-tools alongside some other stack in this layout:

anything/
    lib/
        x86_64-linux-gnu/
            libsteam-runtime-tools-0.so.0
    libexec/
        steam-runtime-tools-0/
            i386-linux-gnu-*
            x86_64-linux-gnu-*

as long as the program that is linked to libsteam-runtime-tools-0.so.0 can find it (via a RPATH or RUNPATH or by setting the LD_LIBRARY_PATH environment variable).

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 (container runtime) compatibility tool to run games in individual game-specific containers. For background on pressure-vessel and the Steam Linux Runtime, please see: