- Dec 09, 2020
-
-
Simon McVittie authored
Since !173, we have been able to create symbolic links to graphics drivers anywhere on the filesystem, but that didn't mean the graphics driver would necessarily be usable, because the directory containing it would not necessarily be visible in the container. Add these directories to the list of directories to be "exported". Manual test (Debian on on Intel hardware, adjust as required for others): * Modify /usr/share/vulkan/icd.d/intel_icd.i686.json to use /opt/moved-from-usr/lib/i386-linux-gnu/libvulkan_intel.so * Move the real i386 libvulkan_intel.so to that location * ./run --verbose -- steam-runtime-system-info 2>&1 | tee container.log Resolves: #29 Resolves: https://github.com/ValveSoftware/steam-runtime/issues/313 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 30, 2020
-
-
Ludovico de Nittis authored
In case a user is experiencing some problems he might try to disable the import of Vulkan layers to better isolate the issue he is facing. Fixes: #37 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Oct 26, 2020
-
-
Ludovico de Nittis authored
If necessary, in runtime.c we should access the original environment instead of the global one, because it might have been edited. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Oct 01, 2020
-
-
Ludovico de Nittis authored
If we want to pass all the possible variables that a user might have set in its environment, we need a mechanism to lock the variables that pressure-vessel is editing (e.g. LIBGL_DRIVERS_PATH), variables that we want to keep unset because will be wrong in the new container (e.g. FLATPAK_ID) and variables that should inherit their value from the host system (e.g. DISPLAY). Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Sep 25, 2020
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 09, 2020
-
-
Simon McVittie authored
This is preparation for combining pressure-vessel with steam-runtime-tools. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 02, 2020
-
-
Ludovico de Nittis authored
pressure-vessel had a few hard coded assumptions about the host system and where to look at for the graphics provider. For example it was assumed that the root was the same host system used by both pressure-vessel current environment (where pressure-vessel-wrap runs) and also later on by `bwrap`. But when we run pressure-vessel in a Flatpak container, the final `bwrap` command is expected to be executed against the real host system (mounted in `/run/host`, in Flatpak). Also when we are in a Flatpak container we might want to pick the graphics stack from the host system (`/run/host`), from the Flatpak container itself or it could even be a completely separate one. (T22373, T22371) Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Aug 18, 2020
-
-
Simon McVittie authored
This will let us have the following logic when sharing a container between multiple commands using -launcher and -launch: * For setup commands, don't wrap the launched command in the adverb. If the setup command starts background processes, they'll continue to run. This matches how installscript commands have historically worked for Windows (and Wine/Proton) games in Steam: the setup command is launched with system(), and can leak background processes like wineserver. * For the main game, wait for all processes to exit, by wrapping the launched command in the adverb, with --subreaper only. This matches how native Linux games, and the main command of Windows/Wine/Proton games, have historically worked in Steam. * When all processes belonging to the main game have exited, the -launcher can exit, at which point the subreaper that wraps it can clean up any background processes from the setup commands. --terminate-idle-timeout can be used to wait a few seconds before sending SIGTERM, if desired. Because the adverb now blocks SIGCHLD, we need to unblock it before running the child process; otherwise the child process will inherit the blocked signal, breaking things like g_spawn_async(). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jul 29, 2020
-
-
Simon McVittie authored
This will make it easier to debug things going wrong in the adverb, by inheriting --verbose or PRESSURE_VESSEL_VERBOSE from the wrapper. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jul 21, 2020
-
-
Ludovico de Nittis authored
pressure-vessel-with-lock has been renamed to pressure-vessel-adverb because now it has more capabilities than just taking a lock. This change should help the environments that are not able to normally run `bwrap`, like if we are in a Docker container or in a Flatpak app. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jun 17, 2020
-
-
Simon McVittie authored
I'd originally intended this to be done by a wrapper script, but in fact it's just as straightforward to do it here, which has the advantage that it keeps all the knowledge about the contents of the temporary runtimes directory in one place. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This is good for two reasons. In a Flatpak runtime, we will not be able to do tricks with arbitrary bind-mounts; if we want the host library stack, we will have to rewrite the mutable copy of the runtime to replace container libraries with symlinks into /run/host. Also, when not in a Flatpak runtime, having a mutable copy of the immutable runtime gives developers a chance to edit the runtime to inject workarounds or things they're testing. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 12, 2020
-
-
Simon McVittie authored
This is one of the slower parts of the whole process, and not all games (or automated tests) even need it. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 04, 2020
-
-
Simon McVittie authored
In practice we always want the host graphics stack, but maybe this will be useful when debugging. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
There's very little refactoring so far: bind_runtime() is still basically monolithic, and takes individual bits of PvRuntime's state rather than a PvRuntime object. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
wrap.c is getting rather large, so the idea is that this will encapsulate everything related to swapping in a different /usr. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-