- Feb 26, 2021
-
-
Simon McVittie authored
Flatpak subsandboxes don't have sufficiently powerful control over the container to use bubblewrap or FlatpakExports directly. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
My Flatpak branch puts it at /run/parent/app, alongside /run/parent/usr. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This is experimental and subject to change. It requires branches of Flatpak that have not yet been reviewed or merged, so it's guarded by (deliberately undocumented) environment variables by default. Only enable this if you are a pressure-vessel developer and know precisely what you're doing. This feature also requires a non-setuid bwrap executable, and a kernel that allows the non-setuid bwrap to create new user namespaces. Fedora, Ubuntu, Debian >= 11, and Arch Linux's default kernel are examples of systems that should be OK; Debian <= 10, SteamOS 2, and Arch Linux's linux-hardened are not. I'm landing this despite its experimental status because leaving it in a branch means we have to rebase it all the time, which just slows us down. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
launch: Add --app-path, --usr-path See merge request !256
-
Ludovico de Nittis authored
Run successfully when /var or /var/tmp is a symlink See merge request !255
-
Simon McVittie authored
These are the client side for <https://github.com/flatpak/flatpak/pull/4018 >. We'll use them to put the Steam Runtime on /usr and an empty directory on /app. Because the corresponding Flatpak change has not been merged, make it fail unless an undocumented environment variable has been set. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If the FlatpakExports has set these up to be symlinks, it's harmless to use --dir redundantly; but if we do these too soon, the FlatpakExports would be unable to create its symlinks and would fail. Resolves: https://github.com/ValveSoftware/steam-runtime/issues/368 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
runtime: Bind the drirc settings from the provider Closes #60 See merge request !253
-
Ludovico de Nittis authored
If we are using the provider graphics stack, including mesa, we should also bind the drirc settings. Otherwise we would end up using the older settings from the runtime. The default configuration file is expected to be located under `/usr/share/drirc.d`, with an additional system-wide configuration file called `/etc/drirc` and a per-user configuration `$HOME/.drirc`. The only one that has been left out by this commit is the one that comes from `$HOME`, because we normally already share the whole home directory, so we expect it to be already available in the container. Fixes: #60 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
By generalizing pv_runrime_collect_libdrm_data() and pv_runtime_finish_libdrm_data() we will be able to reuse these functions when we need to import other directories that are expected to be located under `/usr/share`, like `drirc.d`. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
pressure-vessel: Put apt-style severity prefixes on messages See merge request !254
-
Simon McVittie authored
These indicate which lines are harmless and which lines are really bad, without taking up too much space. The mapping from GLib log level to message is not 100% obvious, because G_LOG_LEVEL_ERROR is "worse than" an error. We diagnose "can't happen" situations (assertion failures, etc.) as "Internal error". Ideally, users should never see these: they indicate a bug. For situations that will cause pressure-vessel to exit with an error, introduce a new log level flag PV_LOG_LEVEL_FAILURE and map it to the apt-style "E:" prefix. pv_log_failure() is a convenience macro to log at level PV_LOG_LEVEL_FAILURE. Conceptually this is a fatal error, but it's a fatal error prompted by something external to pressure-vessel, for which we want pressure-vessel to clean up "nicely" and exit gracefully, even though it's going to fail - so we can't use g_error() for this. In the parts of main() that involve parsing command-line arguments, add usage_error() as syntactic sugar for pv_log_failure(). I might eventually turn these into G_OPTION_ERROR_FAILED as we factor out more of main() into helper functions, but for now they're handled separately. For less-severe log levels, use single-letter prefixes similar to apt's. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Feb 25, 2021
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
Start reducing the size of wrap.c See merge request !252
-
Simon McVittie authored
system-info: Use the default multiarch tuples as a fallback for ICDs Closes #58 See merge request !251
-
Simon McVittie authored
wrap.c is generally too big, and so is main() specifically. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
wrap.c is generally too big, and so is main() specifically. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
This is similar to the behavior that we have for Vulkan Layers. The only difference is that for ICDs we still have the ability to set a custom "multiarch_tuples" parameter, without the need to set the multiarch for the whole #SrtSystemInfo object. Fixes: #58 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Simon McVittie authored
CI: Require Arch Linux CI to succeed See merge request !250
-
Ludovico de Nittis authored
Recently @laks updated our runners `runc` to the required minimum version 1.0.0-rc93. Additionally the latest Arch Linux docker image now includes glibc 2.33-4. With these two changes we now expect the Arch Linux CI to succeed. Addresses: #57 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Simon McVittie authored
More Flatpak preparation See merge request !249
-
Simon McVittie authored
wrap: execute nvidia-modprobe before entering the container Closes #59 See merge request !246
-
Simon McVittie authored
The Flathub Steam app loads a LD_AUDIT module to ignore bundled libraries in games where they cause problems. We want to treat that essentially the same as LD_PRELOAD, at least until we take on its functionality. While we're changing this, also change the misleading name of the option. It was called --host-ld-preload, but it actually took the LD_PRELOAD module from the current execution environment, not the host. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
If needed, try to run `nvidia-modprobe` to load the necessary `nvidia_uvm.ko` kernel module. Fixes: #59 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
This allows us to reduce the code duplication in pv_bwrap_run_sync(). Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Simon McVittie authored
If we are using a non-Debian-based runtime's terminfo, in particular if we're in Flatpak, then it won't normally search /lib/terminfo. This is problematic for PRESSURE_VESSEL_SHELL, because ncurses-base puts the xterm-256color terminfo in /lib/terminfo. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we're looking for something in a sysroot, we should say which sysroot. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We use FlatpakBwrap for any argv array, not just bwrap(1), so we might be replacing the current process with any executable. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
Use a better default for the graphics stack See merge request !248
-
- Feb 24, 2021
-
-
Simon McVittie authored
This was meant to use the graphics stack from the container itself, but we don't normally test that case (having graphics drivers is considered useful if you want to run games!) so it regressed. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we don't have at least the equivalent of `flatpak run --filesystem=host-os` then we are not going to get very far. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
For historical reasons, we assume that /run/host is a relatively complete view of the host system, like it would be inside Flatpak. However, in a systemd-nspawn container, /run/host contains other things but not usually /usr or /etc. Previously, the default was exactly equivalent to the old PRESSURE_VESSEL_HOST_GRAPHICS=1, which in turn is equivalent to either PRESSURE_VESSEL_GRAPHICS_PROVIDER=/run/host (if we appear to be in a container) or PRESSURE_VESSEL_GRAPHICS_PROVIDER=/ (if not). Now, the default is basically PRESSURE_VESSEL_GRAPHICS_PROVIDER=/, to maximize the chance that if Steam games can run in the older LD_LIBRARY_PATH-based Steam Runtime, they'll also run in our containers. Resolves: https://github.com/ValveSoftware/steam-runtime/issues/367 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
Follow-up refactoring from !235 See merge request !247
-
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 mostly don't actually use this to bind ICDs, so the name is misleading. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-