Skip to content
Snippets Groups Projects
Simon McVittie's avatar
Simon McVittie authored
This is how Flatpak behaves, and it's necessary to prevent the
game-specific $HOME from being mounted over the top of some of the
exports, preventing (for example) ~/.steam from being exposed to the
container.

We only do this for $HOME rather than completely reverting 3a8e939d,
so that it won't be a regression for a symlink at /var/tmp.

If the logical and physical paths to the real $HOME differ, we now also
mount the game-specific $HOME onto the real $HOME's physical path, and
replicate the logical path's symlinks in the container. This matches how
Flatpak works, and avoids a similar regression.

Fixes: 3a8e939d "pv-wrap: Delay --dir, etc. until after FlatpakExports are processed"
Resolves: #63


Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
242e8906
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: