- Jun 12, 2020
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- May 21, 2020
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Using only the 0th slot doesn't actually save us any memory, and being consistent about what the slots mean will make it easier to factor out common code. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we failed to bind the driver into the container, then we don't want to try to use it later. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We'll need those if we want to run ldconfig. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
The entire setup for this call to `readlink -f` should have been removed when it was hoisted further up in bind_runtime() (and replaced with `readlink -e`) during commit 26b3be64, but in fact only the part that actually *ran* the wrapped readlink command was deleted. This also always leaked some memory. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
While adding basic test coverage I discovered that this was not giving the intended answer if two values for the same variable appear in the environment block, which is rare but technically possible. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Unlike Autotools, in Meson this doesn't have the problems caused by recursive make: ninja always has an overview of the whole source tree. With this change, test-locale-gen.sh needs minor adjustments, because G_TEST_SRCDIR, G_TEST_BUILDDIR now point into tests/ instead of the root directory of the source tree. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We already (optionally) use --unshare-pid since commit feb948ed. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- May 20, 2020
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Use its own name, and not the first word of the command we executed or would have executed. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- May 18, 2020
-
-
Simon McVittie authored
If we are on an OS where /sbin is not normally in unprivileged users' PATHs (for example Debian), we won't find ldconfig in PATH and will need to try harder. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Apr 15, 2020
-
-
Simon McVittie authored
We use the same GPtrArray to accumulate both i386 and x86_64 drivers, so ideally we allocate enough space for both and never have to reallocate it again. (But if we guess wrong, no harm done.) Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Even better than an assertion that crashes at runtime if we were wrong - an assertion that makes the build fail if we were wrong, so we can't release code where this assertion would fail. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Unlike EGL and Vulkan, we assign to these variables once per multiarch tuple, separately; so we need to free them once per multiarch tuple, too. Move their scope inwards so we can do that. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
If available, and newer, we bind VA-API drivers and loaders from the host system. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 09, 2020
-
-
Ludovico de Nittis authored
If available, and newer, we bind VDPAU drivers from the host system. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 08, 2020
-
-
Simon McVittie authored
This improves isolation between the host system and the game, and can be used in conjunction with bwrap's init/reaper process to make game termination fully reliable (unlike subreapers, killing the init process automatically kills the entire pid namespace). One major down-side of doing this is that if the game uses process-ID-oriented APIs, for example older versions of <https://github.com/FeralInteractive/gamemode >, then they will not work, because the process ID inside the container is not the same as the process ID outside the container. Unfortunately, Steam's own tracking of the processes that belong to a game is one of the process-ID-oriented APIs that this harms, so this branch does not unshare the pid namespace by default, only when requested. We can use this to test whether it can be done without breaking Steam; We will probably need to cope with separate pid namespaces if we create new containers from inside a Flatpak environment. Also add an option to unload the gameoverlayrenderer.so module, which is not acceptable for production use, but at least works around this well enough to unblock further testing. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 24, 2020
-
-
Ludovico de Nittis authored
If we are using the host's libc, we also bind its `locale` otherwise it might happen that the container's `locale` will not be able to run. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 23, 2020
-
-
Ludovico de Nittis authored
The container didn't have the host system's gconv modules, and the host system's glibc didn't use the Steam Runtime's older gconv modules because they weren't in the directory where it expected to find them. Now if we are using the host's glibc we also bind its gconv modules. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 18, 2020
-
-
Ludovico de Nittis authored
If we are using the host's libc, we also bind its ldconfig otherwise it's likely that the container's ldconfig will not be able to run. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 04, 2020
-
-
Simon McVittie authored
Now that we have this working, there's no real reason why we need a separate run per filename/SONAME pattern; we can just do them all at once, leaving only ICDs with more complicated requirements to be done separately. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This makes it a bit clearer what's going on. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
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
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This sketches out roughly how we'd do this if we were in a container such as a Flatpak environment, rather than on the host system. 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>
-