- Jul 09, 2024
-
-
Simon McVittie authored
logger: Add --sh-syntax, --background See merge request !721
-
Simon McVittie authored
pressure-vessel: Update Flatpak-derived code to Flatpak 1.15.8 See merge request !709
-
Simon McVittie authored
Remove compatibility with GLib < 2.58 See merge request !725
-
This will be needed later on for adding prefixes to output sent to the journal. steamrt/tasks#444 Signed-off-by:
Ryan Gonzalez <ryan.gonzalez@collabora.com>
-
Simon McVittie authored
steamrt/tasks#460 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
steamrt/tasks#460 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We'll use this to test srt-logger --background. steamrt/tasks#460 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This lets a caller of `srt-logger --background` discover this. This is where it becomes significant that the format of the --sh-syntax pipe allows for multiple lines. steamrt/tasks#461 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Making the long-running logging process daemonize is necessary to avoid some failure modes when combined with steam-runtime-supervisor. Without this option, if we run a process inside a supervisor that will passively wait for child processes, and we want a srt-logger to log the output of the supervisor and all of the supervised processes: srt-logger -d ~/tmp -t supervised-shell -- \ steam-runtime-supervisor --subreaper -- \ sh -c 'echo "placeholder process $$ exiting"' then we have a deadlock. The logging process that was started internally by srt-logger becomes a child of the steam-runtime-supervisor, which means the supervisor will not exit until after the logger does. Meanwhile, the logger is receiving the supervisor's stdout/stderr via a pipe, so it will not exit until after the supervisor does, a cyclic dependency that results in neither one exiting. We can break the deadlock by using the new --background option: srt-logger --background -d ~/tmp -t supervised-shell -- \ steam-runtime-supervisor --subreaper -- \ sh -c 'echo "placeholder process $$ exiting"' which makes the internal logging process daemonize (double-fork), reparenting itself to a "larger" subreaper if present, or to process 1; either way, the supervisor no longer needs to wait for it. Similarly, if we set up the same scenario, but this time we want the supervisor to terminate any leaked background processes (such as the sleep(1) process in this example) after the main process exits: srt-logger -d ~/tmp -t supervised-shell -- \ steam-runtime-supervisor --subreaper --terminate-timeout=5 -- \ sh -c 'sleep 3600 & echo "placeholder process $$ exiting"' then we have broken the deadlock, but at the cost of introducing a loss of log information: the supervisor will send SIGTERM to the logger, which will stop recording log messages, and potentially important log messages from the supervisor or the background processes will not be written to logs or to the terminal. Again, we can resolve this problem by adding --background to the srt-logger invocation, which takes it outside the supervisor's control. The complexity cost of putting the srt-logger into the background is not required in all cases, so --background is an option and not the default. In all examples shown here, the sh(1) process is a placeholder representing an arbitrary "payload": more realistically, it would be a game, or some other component such as steamwebhelper. steamrt/tasks#460 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
steamrt/tasks#460, steamrt/tasks#461 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
When launching the logger in the background from a shell script, its exit status will not always be available. There are three states we need to signal to the caller: preparing, ready, and failed. A caller can distinguish between preparing and ready/failed by polling and reading standard output until EOF: until EOF is reached, the logger is still preparing, and after EOF is reached, it is ready. But that doesn't tell the caller whether startup was successful or not. If the logger crashes before it has had a chance to send anything on standard output, then standard output will be closed with no further data; so we need to signal success by sending something non-empty. Use shell syntax, so that we will be able to extend the format to provide information to shell scripts such as `steam.sh`. steamrt/tasks#460, steamrt/tasks#461 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
These are not syntactically valid shell variables, but they can still exist in the environment. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This implements the naming rules for shell variables (as documented in SUSv4/POSIX.1-2008, dash(1) and bash(1)), but its name is more general because it coincides with many other languages' concept of identifiers. We'll use this when emitting environment variables in a form that can be passed to eval(1posix), similar to `dpkg-buildflags --export=sh`, to filter out syntactically invalid variables. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 25, 2024
-
-
Simon McVittie authored
Many of the changes are `#if 0`. Main changes that have a practical effect on steam-runtime-tools: * Some former g_debug() has been promoted to g_info(). * The majority of flatpak-run.c is now `#if 0`. The parts we use have mostly moved to `flatpak-run-*.c`. * Backports from newer GLib are now in their own translation unit. Some of them are `#if 0` because they are redundant with a copy in <steam-runtime-tools/glib-backports-internal.h>. * Flatpak now supports using the Wayland security context extension to mark Wayland connections as belonging to a specific (app ID, instance ID) pair; but this is not relevant for pressure-vessel, so we don't enable or use this feature. * Flatpak now supports using $WAYLAND_SOCKET to create Wayland connections with the security context extension, or optionally allows apps to inherit it directly; but this is not useful for pressure-vessel because it only accepts a single client connection, whereas a Steam game might consist of multiple Wayland clients, so we don't enable or use this feature. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
GLib 2.32 didn't support this, but 2.34+ does, and we now require 2.58. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
g_type_init() is guaranteed to be called by GLib's own constructor since 2.36, and we now require 2.58. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
GLib 2.34 provided the allow-mechanism signal, and we now require 2.58. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We now require GLib 2.58, which provides those. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We now require that version. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
GLib 2.38 supported this, and we now have GLib 2.58 in scout. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We now have a backport of GLib 2.58.x in Steam public betas' version of Steam Runtime 1 'scout', and the same version is bundled with relocatable pressure-vessel releases. Users of `build-aux/many-builds.py` will need to run `build-aux/many-builds.py deps` to download the new scout release before they can continue to compile steam-runtime-tools. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 24, 2024
-
-
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>
-
- Jun 20, 2024
-
-
Ludovico de Nittis authored
dialog-ui: Try to load fonts provided by Steam See merge request !718
-
- Jun 19, 2024
-
-
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
These contain glyphs for all languages supported by Steam. steamrt/tasks#462 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
This makes it more obvious that it's loading a font by family name or alias via fontconfig, not by absolute path to the TTF file. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 18, 2024
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 17, 2024
-
-
Simon McVittie authored
It's no longer active. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Remove Steam Runtime 1½ 'heavy' build paths See merge request !723
-
- Jun 14, 2024
-
-
Simon McVittie authored
It has been discontinued. steamrt/tasks#468 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
It has been discontinued. steamrt/tasks#468 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-