Skip to content
Snippets Groups Projects
Simon McVittie's avatar
Simon McVittie authored
In current Mesa versions, typically these are pulled in via explicit
linking that generates a `DT_NEEDED` ELF header, either in individual
DRI drivers in very old Mesa, in the Gallium "megadriver" in
intermediate Mesa versions like the one in Debian 12, or in
`libgallium-${VERSION}.so` in newer Mesa.

However, Mesa merge request
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21658


suggests demoting the dependency on `libdrm_amdgpu.so.1` from
`DT_NEEDED` to `dlopen()`. Changing that dependency from declarative to
imperative breaks our ability to follow it, resulting in the container's
older `libdrm_amdgpu.so.1` being used.

In principle there's nothing to stop the same thing from happening for
any of the libraries in the libdrm family, so look for all of them.
For future-proofing, I've included all available drivers even if they
are not available on x86 (but excluding exynos and omap, which seem to
be only for 32-bit ARM hardware, which is probably no longer
interesting).

Tested-by: Dmitry Osipenko
Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
9d346343
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: