- Apr 22, 2021
-
-
Simon McVittie authored
If libfoo.so.0 is a symlink pointing to libfoo.so.0.1.2, and we have overridden libfoo.so.0, then we can know that libfoo.so.0.1.2 is also to be avoided, even without opening it to determine its SONAME. This reduces the need to use libelf, which is surprisingly slow if the disk cache is cold. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we got libbz2.so.1.0 from the host, for which libbz2.so.1 is an alias, we will also want to remove libbz2.so.1 from the container. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
The comments here are not really clear enough to express what's going on, particularly in the presence of libraries that have aliases. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We need to 'goto out' to free some arrays of objects, which are too complicated for `__attribute__((__cleanup__))`. 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
As well as making this giant function a bit smaller, this will make it easier to insert profiling markers to see where the time goes. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Apr 21, 2021
-
-
Simon McVittie authored
These refer to the host, but in a Flatpak subsandbox environment the graphics stack provider is not actually the host. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We now use our own check-vulkan executable instead of vulkaninfo, because it can give us more machine-readable information about non-default GPUs. A side benefit is one less dependency. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Apr 20, 2021
-
-
Simon McVittie authored
We don't actually need this information, and it has a significant startup time cost with a cold cache. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Apr 19, 2021
-
-
Simon McVittie authored
This avoids the depot being a mixture of source files and generated files. Signed-off-by:
Simon McVittie <smcv@collabora.com> (originally steamlinuxruntime@f36fbcda)
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com> (originally steamlinuxruntime@3f821430)
-
(originally steamlinuxruntime@fa634281)
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com> (originally steamlinuxruntime@13ae83de)
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com> (originally steamlinuxruntime@0c0e1b3a)
-
- Apr 16, 2021
-
-
Simon McVittie authored
We did this as a very early prototype, but it never fully worked, and required configuring Flatpak specially to allow Steam to escape from the sandbox (which obviously undermines Flatpak's intended sandboxing). Now that we've implemented the features we need in Flatpak's sub-sandboxing code, we have a better way to handle this, and can simplify the code by not trying to have it both ways. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
At the moment we assume it's just "bwrap" when using Flatpak, but when we stop supporting the Flatpak sandbox escape code path, that will become meaningless. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
The Steam Flatpak app can't have this property set by default until the Flatpak version used to build apps on Flathub's buildbot supports it, but we need it (either that or --device=shm, but --device=shm weakens the sandbox). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Everything we need is in Flatpak git master now, so we don't need to allow for people who have patched their Flatpak with my WIP versions of the same code. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
All the features we need seem to have been merged into Flatpak git master. If people are running a git snapshot, let's assume it's the right git snapshot. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Apr 14, 2021
-
-
Simon McVittie authored
For a working Steam overlay, we need either a per-app-ID /dev/shm (flatpak#4214), or /dev/shm shared with the host. Similarly, for a working Steam overlay web browser, we need either a per-app-ID /tmp (flatpak#4093), or /tmp shared with the host. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Now that we're parsing /.flatpak-info, we can check whether we are able to talk to the session helper to run arbitrary code on the host. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Now that the ability to specify a custom path for /usr and /app has been merged into Flatpak git master, we can mostly assume that if the user has a git snapshot of Flatpak, they have that feature available. 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
wrap.c is too big, and main() in particular is too big, so anything we can reasonably factor out here is quite welcome. 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>
-
- Apr 13, 2021
-
-
Simon McVittie authored
Since !269, on systems where PulseAudio is available, we set PULSE_SERVER to a suitable non-empty value, and "lock" it into the environment to avoid it getting overridden by pressure-vessel-launch (in use-cases where we're using that). We also create an /etc/asound.conf in the container's namespace that will make PulseAudio the default for applications that use the ALSA user-space library libasound.so.2, such as Shadowrun Returns. Conversely, on systems where PulseAudio is *not* available (for example where the system is using plain ALSA), we "lock" PULSE_SERVER to a null value so that we will actively remove it from the environment if set. However, this caused a regression: we created /etc/asound.conf based on whether PULSE_SERVER was "locked", which effectively meant this was done unconditionally. An /etc/asound.conf that configures PulseAudio to be the default is not going to work on non-PulseAudio systems. Instead of checking whether PULSE_SERVER is "locked", check whether it's null. This has the desired effect: we configure PulseAudio to be the default if and only if we detected that it's available. Helps: https://github.com/ValveSoftware/steam-runtime/issues/344 Helps: https://github.com/ValveSoftware/steam-runtime/issues/384 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
libdrm.so.2 is not included in the freedesktop.org GL Platform runtime and this leads us to search for the libdrm directory in the wrong place. For this reason we first look at libdrm_amdgpu.so.1 and use libdrm.so.2 as a fallback. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
When we are in a Flatpak environment there are two issue: - It's common to have multiple data directory, usually one for every multiarch - If we bind the data directory in "/usr/share/${dir_basename}" there is no guarantee that it will be in the library search path For this reason we avoid raising a warning if we have multiple data directory and also we bind them preserving their original path. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
If we modify "/app" we want to bind it to the new subsandbox instead of always binding an empty directory. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
When we are in a Flatpak environment there are two issue: - It's common to have multiple data directory, usually one for every multiarch - If we bind the data directory in "/usr/share/${dir_basename}" there is no guarantee that it will be in the library search path For this reason we avoid raising a warning if we have multiple data directory and also we bind them preserving their original path. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
If we modify "/app" we want to bind it to the new subsandbox instead of always binding an empty directory. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 12, 2021
-
-
Ludovico de Nittis authored
Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 09, 2021
-
-
Ludovico de Nittis authored
When we are in a Flatpak environment we want to pick "localedef", "locale" and "ldconfig" from the Flatpak runtime instead of the ones provided by Scout/Soldier. By searching in the "provider_in_current_namespace" we can ensure to create a subsandbox where these executables are symlinked to the "/run/parent" counterpart. Fixes: T27438 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
When we search for gconv in the provider, if the directory we derived from libc starts with "/app/", we should not prepend "/usr/" because we don't expect to have "/usr/app/" in the provider. Without this patch, pressure-vessel in a Flatpak container fails to load i386 gconv with the following message: "We were expecting the gconv modules directory in the provider to be located in "/app/lib/i386-linux-gnu/gconv", but instead it is missing" Fixes: T27437 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 06, 2021
-
-
Simon McVittie authored
Only root can do this. Updating libglnx has given us the ability to skip that step, so do so. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
pressure-vessel doesn't support having the Steam Library under `/usr`. When this happens, pressure-vessel fails without a clear indication of what went wrong. For this reason we add a warning message to point out that pressure-vessel was asked to bind a directory that will not appear in the resulting container. Helps: https://github.com/ValveSoftware/steam-runtime/issues/288 Helps: #30 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 25, 2021
-
-
Simon McVittie authored
Helps: T27110 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-