Skip to content
Snippets Groups Projects
Ludovico de Nittis's avatar
Ludovico de Nittis authored
If we don't want to share the host home directory we expect to have
either --home, --freedesktop-app-id, --steam-app-id or $SteamAppId.

There are cases where this might not happen. For example if Steam has
been launched with the PRESSURE_VESSEL_SHARE_HOME=0 env variable and we
try to run "Help->System Information", the variable $SteamAppId will not
be set and the container creation will fail.

To avoid this issue we can use a tmpfs for the home directory when we
are in batch mode.
In this way the tmpfs will not be used if we need to run an actual game,
because we want to retain the home directory on exit.

Fixes: #66

Signed-off-by: default avatarLudovico de Nittis <ludovico.denittis@collabora.com>
604e3531
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 and x86_64 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 compatibility tool to run games in individual game-specific containers. For background on pressure-vessel and SteamLinuxRuntime, please see: