- Jan 21, 2021
-
-
Ludovico de Nittis authored
JSON-GLib 1.2.0 introduced a new function called `json_from_string()`. It is an handy function that allows us to obtain a jsonNode with just a single operation. This function had to be backported, and modified a little, because we are targeting Scout that has an older JSON-GLib version that misses both `json_from_string()` and `json_parser_steal_root()` (that was used in `json_from_string()`). Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
Without this knowledge, `_srt_find_myself()` will fail to return the right prefix for statically-linked installed tests. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jan 20, 2021
-
-
Ludovico de Nittis authored
Improve container detection See merge request !220
-
- Jan 18, 2021
-
-
Simon McVittie authored
wrap: parse env-if-host options as filenames instead of strings Closes #52 See merge request !221
-
Ludovico de Nittis authored
If we parse the "env-if-host" options as "G_OPTION_ARG_STRING_ARRAY", Glib assumes them to be encoded with the current locale. This can be an issue when pressure-vessel needs to run the main game, because Steam will set "LC_ALL=C", but the "env-if-host" might still contain characters that are not ASCII. To solve this we use "G_OPTION_ARG_FILENAME_ARRAY" that treats the options as opaque byte-blobs. Fixes: #52 Fixes: steam-runtime#349 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jan 14, 2021
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Podman is a lot like Docker, but can run unprivileged. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
See <https://systemd.io/CONTAINER_INTERFACE/ > for details. Recent versions of flatpak and pressure-vessel support this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jan 13, 2021
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
runtime: Use bwrap->envp to run readlink See merge request !219
-
Simon McVittie authored
Previously, pv_capture_output() always inherited pressure-vessel-wrap's own environment, and bwrap->envp was ignored. Thanks to @mawww on Github for spotting this. Fixes: f584a55c "runtime: Don't assume container's env is in the PATH" Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Look for runtimes in PRESSURE_VESSEL_VARIABLE_DIR See merge request !216
-
Simon McVittie authored
Making this configurable as an environment variable will help us to move the logic for unpacking and GC'ing runtimes from SteamLinuxRuntime shell scripts into pressure-vessel C code. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Making this configurable as an environment variable will help us to move the logic for unpacking and GC'ing runtimes from SteamLinuxRuntime shell scripts into pressure-vessel C code. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jan 12, 2021
-
-
Ludovico de Nittis authored
Implement the container indicator from systemd's CONTAINER_INTERFACE See merge request !215
-
Simon McVittie authored
This is a container-manager-agnostic version of probing /.flatpak-info and /run/pressure-vessel. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
runtime: Create symlinks for various distros' ld.so.cache equivalents See merge request !218
-
- Jan 11, 2021
-
-
Simon McVittie authored
Clear Linux uses the same cross-architecture ld.so.cache as most distributions (Debian, Fedora, etc.), but puts it in /var/cache/ldconfig to meet their goal of /etc being empty. Create a symlink so that when their glibc tries to load that filename inside the runtime, what it gets is the runtime's /etc/ld.so.cache. Exherbo uses a ld.so.cache per architecture, which we added to a table of known per-architecture ld.so.cache filenames in commit c10e8831. Create symlinks for those too, similar to the Clear Linux case; this has not yet been verified to work, but it can't hurt. It's looking as though NixOS might be adding a Nix-specific filename for the ld.so cache (currently they don't have one at all). When that happens, we can add it to the same array as the Clear Linux filename. Other distributions that turn out to need this can be treated like Clear Linux if they share one cache between all architectures, or like Exherbo if they have a separate cache per architecture. Partially addresses <https://github.com/ValveSoftware/steam-runtime/issues/345>, which also needs <https://gitlab.collabora.com/vivek/libcapsule/-/merge_requests/43>. Also partially addresses <https://github.com/ValveSoftware/steam-runtime/issues/230 >. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Improvements to pressure-vessel handling of LD_PRELOAD See merge request !214
-
Ludovico de Nittis authored
If we don't use `--setenv` directly, the process that we create with "pv_bwrap_execve()" could throw some errors because it is unable to preload the libraries that we specified, because they are valid only in the container structure. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jan 08, 2021
-
-
Ludovico de Nittis authored
Further refactoring towards Flatpak sub-sandboxing support See merge request !213
-
Simon McVittie authored
This will reduce the diff in later commits that actually change logic, hopefully making them easier to review. Best reviewed with `git diff --ignore-space-change` or similar. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Instead of this pseudocode: bwrap += argv_in_container final_argv += bwrap if we do this: final_argv += bwrap final_argv += argv_in_container it will be easier to adapt to Flatpak sub-sandboxing, in which we never directly build up a bwrap command-line and so bwrap remains NULL. This means that in the case where we are escaping from a Flatpak sandbox to run commands on the host, we have to forward the fds from argv_in_container in addition to the fds from bwrap. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This refactoring will be helpful when running in Flatpak. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We always need a mutable copy of the runtime when running in Flatpak, because we are unable to run bwrap to do container setup. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we are not using the --launcher, then there's no point in setting this up: they won't be used for anything anyway. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
In the case where we use Flatpak sub-sandboxing, we're not going to be building a bubblewrap command-line at all. Luckily, when we make use of a mutable sysroot, we don't need it. This requires splitting bind_runtime(), which consists of * a part that builds up the basic bwrap command-line and environment variables before setting up the graphics stack (now bind_runtime_base()) * setting up the graphics stack by either building a bwrap command-line or editing the mutable sysroot, and in either case setting environment variables (pv_runtime_use_provider_graphics_stack()) * a final part that sets the last few bwrap arguments and exports (bind_runtime_finish(), which can't currently fail) Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
pressure-vessel: Find PulseAudio socket even if no XDG_RUNTIME_DIR Closes #51 See merge request !212
-
- Jan 07, 2021
-
-
Simon McVittie authored
On systems with no XDG_RUNTIME_DIR, PulseAudio falls back to creating a temporary directory in /tmp, then creating a symlink in legacy directory ~/.pulse or its more modern replacement ~/.config/pulse. The symlink is named according to the machine ID, falling back to the hostname. Resolves: #51 Resolves: https://github.com/ValveSoftware/steam-runtime/issues/343 Forwarded: https://github.com/flatpak/flatpak/pull/4059 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jan 06, 2021
-
-
Simon McVittie authored
Refactoring in preparation for Flatpak support See merge request !208
-
Simon McVittie authored
runtime: Do not always use a subdir for library paths that are just SONAMEs Closes #49 See merge request !211
-
Ludovico de Nittis authored
When we bind an ICD library, and the path is just a SONAME, it might happen that the library gets mounted to a subdirectory that is not on the search path. To avoid that, now we have an option to disable the usage of subdirs when the library path that we want to bind is just a base SONAME. Fixes: #49 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jan 05, 2021
-
-
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
Start to use the "info" log level See merge request !209
-
Ludovico de Nittis authored
Now that we have the ability to set the log level to "info", this commit promotes, from the debug level, all the messages that can be useful to have, for debugging purposes, but that are not too lousy. Over time, when we also gain more first hand experience with the issue reports that users provide, we can tweak the log messages even more. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-