- Feb 26, 2021
-
-
Simon McVittie authored
... and correctly credit Ludovico for the nvidia-modprobe change. (Sorry!) 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>
-
Simon McVittie authored
runtime: improve ICDs dependencies binding speed See merge request !235
-
Simon McVittie authored
Make pressure-vessel responsible for unpacking runtimes See merge request !239
-
- Feb 23, 2021
-
-
Ludovico de Nittis authored
Instead of calling bwrap every time we need to bind a library, or the dependencies of a library, we group them together to speed up the whole process. In `bind_icd()`, to decide whether to use a numbered subdir or not, we check if a symlink for the same library already exists. It also compares the directory size before and after the binding to check if we were actually able to capture it. For this reason we decided to not group together the ICDs/Layers, to avoid having side effects like in the previous commit "runtime: improve ICDs binding speed" and to avoid an overly complicated hard to follow implementation. Instead we group together only the libraries that need to be binded in `arch->libdir_in_current_namespace`. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-