- Nov 22, 2023
-
-
Simon McVittie authored
This lets us use a path based on ${LIB} rather than ${PLATFORM}, which will work under FEX-Emu. Helps: steamrt/tasks#349 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
When running under FEX-Emu, we cannot determine the correct value for ${PLATFORM}. However, the standard "rootfs" environments for FEX-Emu are all based on operating systems whose ${LIB} setup we understand - either Debian multiarch, FHS/Red Hat multilib, or Arch multilib - so we can prefer to use one of those, only falling back to ${PLATFORM} if nothing else works. Helps: steamrt/tasks#349 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
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>
-
Simon McVittie authored
No functional changes. The vast majority of our delta was merged: our only remaining changes are to use a slightly older WAFFLE_API_VERSION, and apply https://gitlab.freedesktop.org/mesa/waffle/-/merge_requests/146 as local delta. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
There appears to be a once-per-process memory leak in wegl_display_init(), which is uninteresting for a short-lived process. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Previously we allocated one GVariant per loop, but only freed the last. When building with AddressSanitizer, this caused a crash which is reported to systemd-coredump if used (but the JSON output was valid, and the test suite can't assert that check-xdg-portal succeeds because on some test systems it might not, so the crash did not cause a test failure). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
No functional change intended, it just uses a little less memory. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
The SrtSysroot passes it to a function that is annotated as not validly accepting NULL, which is caught by recent functions of UBSan. In practice _srt_sysroot_new() would have returned NULL in this situation anyway. Fixes: 1d08d563 "pv-wrap: Use a SrtSysroot to represent the interpreter root" Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 21, 2023
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
Add a tool to verify runtimes against a mtree manifest See merge request !631
-
- Nov 17, 2023
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This will make it easy to verify that `SteamLinuxRuntime_sniper` and `SteamLinuxRuntime_soldier` are intact: .../SteamLinuxRuntime_sniper/pressure-vessel/bin/pv-verify and only slightly more difficult to do the same for SLR 1.0: .../SteamLinuxRuntime_soldier/pressure-vessel/bin/pv-verify \ .../SteamLinuxRuntime A more explicit version of the first command is: .../SteamLinuxRuntime_sniper/pressure-vessel/bin/pv-verify \ --mtree=.../SteamLinuxRuntime_sniper/mtree.txt.gz \ -- \ .../SteamLinuxRuntime_sniper/pressure-vessel but the defaults are sensible. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This will allow a similar code path that verifies instead of applying. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This provides a convenient way to check whether the depot has the contents we believe it should. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This matches the output of bsdtar (libarchive), for example: bsdtar -cf- --format=mtree -C ~/tmp . and NetBSD mtree(8) (the mtree-netbsd package in Debian), for example: mtree -c -p ~/tmp | mtree -C 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
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
pv-adverb: Show contents of ld.so.cache if debug output is enabled See merge request !630
-
Ludovico de Nittis authored
subprocess: Add a SrtCompletedSubprocess object to represent the result See merge request !625
-
Ludovico de Nittis authored
Add an object encapsulating the execution environment for helper subprocesses See merge request !629
-
- Nov 16, 2023
-
-
Simon McVittie authored
This is loosely based on the API of Python's `subprocess.CompletedProcess`. It intentionally isn't exposed to code outside its translation unit until it has finished running. This takes over the functionality of _srt_process_timeout_wait_status(), which is used automatically when needed for timeout(1), and can also be requested explicitly with SRT_HELPER_FLAGS_SHELL_EXIT_STATUS if using a wrapper that encodes exit status in the same way such as sh(1) or env(1). No functional change intended. The formatting of debug messages will be a little different, because I've used SRT_SUBPROCESS_OUTPUT_CAPTURE_DEBUG instead of open-coding its equivalent. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
During refactoring I noticed that this function was capturing stdout and stderr, but didn't actually do anything with them. Let's have these in a debug log. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This ensures that if our log output has been redirected to the systemd Journal, the helper's diagnostic output will follow. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
During refactoring I noticed that these would previously have inherited the parent process's stdout and stderr file descriptors, potentially interfering with machine-readable output on stdout. Clean that up. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
The `display` and `graphics-drivers` checks historically didn't, but that seems more like accident than design. We can add a way to avoid this filtering if we find that we need it in future. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Now that SrtSubprocessRunner knows both the SrtTestFlags and SrtHelperFlags, it can always set the timeout appropriately. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This encapsulates `g_spawn_sync()` with a useful set of flags and behaviours, and will let us move the responsibility for handling features like timeouts between `get_helper()` and `spawn_sync()`. To make that work, try harder to pass the same flags to both `get_helper()` and `spawn_sync()`. For `architecture`, `display`, `graphics-drivers` and `libdl`, no behaviour change is intended. `display` and `graphics-drivers` should probably not be using `KEEP_GAMEOVERLAYRENDERER` (there's no real reason to do so) but for now, preserve existing behaviour. For `library`, we were previously passing `G_SPAWN_SEARCH_PATH` to `g_spawn_sync()`, but it would have had no practical effect, because we're using the absolute path to a helper executable. Drop that flag. For `graphics`, we were previously searching the `PATH` for everything except `check-gl`. Consistently search the `PATH` in all cases. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we make _srt_inspect_library responsible for filtering out the gameoverlayrenderer.so from LD_PRELOAD itself, then we can give it the unmodified execution environment as its argument. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Previously we ignored the parameter and used default values here. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
my_environ had the same content as custom_environ, so we can use our new const-correct wrapper _srt_environ_getenv without any casts or copying. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
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>
-
Simon McVittie authored
Previously, only --verbose or PRESSURE_VESSEL_VERBOSE would have activated this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Helps: steamrt/tasks#357, steam-runtime#630 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
In principle we could be invoked with --regenerate-ld.so.cache but without --set-ld-library-path (although pv-wrap never actually does this). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-