- Feb 19, 2024
-
-
Simon McVittie authored
There's no reason why this particularly needs to be pressure-vessel-specific, and since commit 7627197e "steam-runtime-tools: Separate out modules not in the shared library" we can share code between pressure-vessel/ and bin/ without enlarging the shared library. 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>
-
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>
-
Simon McVittie authored
Naming copied from C into Python. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Feb 09, 2024
-
-
Simon McVittie authored
There are currently four possibilities for STEAM_ZENITY: * unset * explicitly set to empty (to disable its use, as on Steam Deck) * absolute path of host zenity, typically /usr/bin/zenity * literal string "zenity" which will be found in scout's PATH In all cases except the last, there is no need to unset STEAM_ZENITY when "escaping" from the LDLP runtime, because the value will be equally valid in a host-like execution environment; and when the value is empty, it can be actively harmful to unset it, since this will result in using zenity when not intended. For completeness, we also unset STEAM_ZENITY if it is the absolute path of the LDLP runtime's zenity (which is not a situation that Steam ever sets up right now, but in principle it could be). steamrt/tasks#397 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
It's simpler if we avoid layering violations in the build system, and using flatpak_quote_argv() here doesn't buy us much. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This will let us call it (carefully) from library code. While we're changing its signature, also don't require the caller to pass a string that ends with a newline, making it more like g_error(). It turns out that we got this wrong in one place already. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This script was added in June 2021 (T28437) when we migrated app ID 1070560 from being a self-contained "pure scout" runtime (for which the entry point was ./_v2-entry-point) to being a layered scout-on-soldier runtime (for which the entry point is ./scout-on-soldier-entry-point-v2). At the time, the Steam client did not reliably pick up the configuration change until it was restarted. It seems safe to assume that all users have restarted Steam since 2021. Removing this workaround also incidentally removes one of our uses of zenity, which helps steamrt/tasks#397 and related tasks. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This was implemented to interact correctly with the locking scheme used in bwrap(1) (which uses the non-OFD flavour of fnctl locks), but is otherwise unrelated to bwrap(1) or pressure-vessel. Moving this into common code will facilitate using it outside pressure-vessel, in particular when unpacking `ubuntu12_64/steam-runtime-sniper/`. While I'm changing the interface anyway, take the opportunity to rename the WRITE flag to EXCLUSIVE, which is clearer. Helps: steamrt/tasks#387 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
These will be new API in GLib 2.79.2. The only code change in the implementation, other than the _glnx wrappers, was to use `close()` instead of `g_close (fd, NULL)` in a context where it must be async-signal safe. The test-case needed some more adjustments to be backwards-compatible with GLib from the distant past. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Feb 02, 2024
-
-
Simon McVittie authored
Avoid the word "production", which could easily be mistaken for an official release. It's here for historical reasons. We used to do two separate relocatable installations, one with production-like compiler options, and one unoptimized and unstripped for debugging; but I removed the latter in commit 8649f766 "CI: Skip unpackaged scout builds" in mid 2021, because it slowed down CI and was rarely useful. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jan 31, 2024
-
-
Simon McVittie authored
In practice we stopped creating these in mid 2021, when we stopped shipping runtimes as an archive. Now that the code to unpack archives has gone entirely, so can this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We haven't done this since May 2021, and for the copy of SLR_sniper 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. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
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 20, 2023
-
-
Simon McVittie authored
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>
-