- Jan 31, 2024
-
-
Simon McVittie authored
We haven't done this in production since May 2021. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We haven't done this since May 2021, and for the copy used for the steamwebhelper since January 2024, we are unpacking SteamLinuxRuntime_sniper.tar.xz (including pressure-vessel) in preference to using pv-wrap --runtime-archive. I think we can conclude that we will not use that mode in future, either. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Before we added SteamLinuxRuntime_whatever/var in early 2021, we would unpack runtime archives directly into SteamLinuxRuntime_whatever/scout_0.x or similar. Assume that all such directories have been cleaned up by now. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jan 12, 2024
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Dec 07, 2023
-
-
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
Inside our container, both /run and /var are on tmpfs, so both are equally suitable. Using /var for this has the advantage that it avoids a split-brain situation where ARM and x86 code under FEX-Emu will see different content in /run. /var is already split between the real root used by ARM code and the $FEX_ROOTFS used by x86 code. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 22, 2023
-
-
Simon McVittie authored
Otherwise, pv-adverb will be unable to detect the expansion of ${LIB} or ${PLATFORM}, leading to a somewhat unrealistic test. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 17, 2023
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
There are too many false positives if we do. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This is more difficult than you might think, because until GLib 2.78 (which is far too new for us to depend on), there was a potential race condition between g_child_watch_source_new()'s use of waitpid(), and a kill() in the same main-context. We don't really want to use g_child_watch_source_new() anyway, because we don't know whether this library is going to be loaded by a process that is blocking SIGCHLD or handling SIGCHLD itself. Avoiding timeout(1) can result in a significant speedup on ARM hardware emulating x86 via FEX-Emu, which makes executable startup disproportionately expensive: each new executable needs to re-initialize the interpreter, which is normally fine, but the cost builds up when we run a very large number of very small processes. Avoiding timeout(1) is also good for robustness: in the past, Canonical's Steam Snap app has had an AppArmor profile that did not allow arbitrary coreutils commands to be run. In this initial implementation, we poll the process every 100ms. This is *much* slower than blocking (it adds up to 100ms to every subprocess execution, resulting in a slowdown from around 8 to 96 seconds for steam-runtime-system-info on x86), but it can be used as a fallback. It's in this commit to have an opportunity to test the fallback code path. Subsequent commits will speed this up again. Helps: #88 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 16, 2023
-
-
Simon McVittie authored
This will let us bundle together more of the subprocess handling for running helpers. For now, it is just a container for the environment, helpers path and test flags. This is an immutable value-object which does not change after it has been constructed, meaning that we can share it between threads if that becomes useful in future. No functional change intended. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This makes us somewhat more const-correct, reducing the scope for accidents. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
environ can in principle be NULL. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 02, 2023
-
-
Simon McVittie authored
This avoids gcc warnings by making use of the fact that gcc allows casts of any function pointer to/from a function with no result and no arguments, which both gcc and GLib use as a stand-in for a function with unspecified result and unspecified arguments. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 30, 2023
-
-
Simon McVittie authored
Unlike most POSIX functions, instead of returning -1 and setting errno on error, pthread_sigmask() returns a positive errno-like value on error. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 25, 2023
-
-
Simon McVittie authored
Only launcher.py actually needed this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
It doesn't actually have anything to do with pressure-vessel any more. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
There's nothing pressure-vessel-specific about it. 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
Just for completeness, really. Previously we didn't test this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Without this, running the test in a soldier container, launched from a host with (for example) LC_ADDRESS=en_GB.utf8, will fail. Until now, this was masked by the fact that this test was unnecessarily skipped when dbus-run-session is unavailable, but I want to change that. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 24, 2023
-
-
Simon McVittie authored
Convert its test coverage into test coverage for _srt_sysroot_test(), rather than wasting it. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This will let us tell at a glance which version of the diagnostic tool a given report came from. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 23, 2023
-
-
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
Now that we correctly read the emulated /etc/os-release in a FEX-Emu environment, we should also report the real OS somewhere. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Previously, s-r-system-info would inspect the live system looking for host OS information, even if it was meant to be parsing a JSON report and not looking at any live data. This needs to be fixed before we can add diagnostic messages to the OS info part of the JSON report, otherwise diagnostic messages from failing to find information about the host OS would become part of the loaded and re-serialized report, causing the round-trip test to fail. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
In the load/save round-trip test, this requires re-saving the file with --verbose, otherwise these fields will be lost. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Unlike SrtOsRelease and its accessors in SrtSystemInfo, this keeps track of everything we might want to add to the JSON report: all os-release(5) fields (not just the important ones), the source path from which we got the information, and any diagnostic messages we logged while collecting it. Because this is a separate object, it'll be more suitable for representing the various contexts that might have an os-release(5). When using FEX-Emu and pressure-vessel, we can have up to four os-release(5) files: the one that is read by native ARM code, the one in the interpreter root pseudo-overlayfs that is read by x86 code, the one that would be read by native ARM code outside the pressure-vessel container, and the one that would be read by x86 code outside the pressure-vessel container. Representing these as four objects with the same API will result in much less duplication. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We will want this in order to be able to report whether we have found the "right" os-release when running under FEX-Emu. steamrt/tasks#342 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
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-