Tags give the ability to mark specific points in history as being important
-
v0.20260505.0
protectedRelease: v0.20260505.0367c3870 · ·steam-runtime-tools v0.20260505.0 * pressure-vessel: - When pv-adverb receives SIGINT, SIGTERM or SIGQUIT, or when its parent process (srt-bwrap) exits, terminate all descendant processes in the same way as `steam-runtime-supervisor --terminate-when-signaled`: send SIGTERM, wait up to 2 seconds, send SIGKILL to any remaining processes (steamrt/tasks#961) - `pv-adverb --terminate-timeout=…` no longer implies `--terminate-with-main` - pv-adverb is always a subreaper - pv-adverb always exits when its parent process does - With `p-v-wrap --unshare-pid`, let pv-adverb act as process 1 in the new namespace. (Note that this is an experimental feature that does not yet interact well with Steam.) -
v0.20260430.0
protectedRelease: v0.20260430.0cf35fb6a · ·steam-runtime-tools v0.20260430.0 * pressure-vessel: - In the relocatable bundle, fix the broken symlink `pressure-vessel/bin/s-r-l-s` → `pressure-vessel/../libexec/s-r-t-0/TUPLE-srt-l-s` so it correctly points to `../libexec/s-r-t-0/TUPLE-srt-l-s` (steamrt/tasks#998, fixing a regression in 0.20260428.0) - In the relocatable bundle, add `pressure-vessel/bin/srt-logger` (steamrt/tasks#1015) * steam-runtime-steamrt-*: - Add `bin/srt-logger` to the top-level bin/ directory (steamrt/tasks#989, steamrt/tasks#1015) -
v0.20260428.0
protectedRelease: v0.20260428.0cd18012e · ·steam-runtime-tools v0.20260428.0 [ Antonio Ospite ] * steam-runtime-steamrt-*: - Add a populate-depot.py option for a top-level bin/ directory. Unlike pressure-vessel/bin/, this is intended to avoid implementation details and only contain executables that would make sense to put in the PATH, with stable interfaces. In particular, it contains the steam-runtime-launch-options debugging tool. (steamrt/tasks#989, steamrt/tasks#998) [ Simon McVittie ] * SteamLinuxRuntime_*: - Add a populate-depot.py option for foreign-architecture versions of pressure-vessel, to be used when emulating one architecture on another, in practice x86 on arm64 (steamrt/tasks#845) * pressure-vessel: - In the relocatable bundle, make p-v/bin/s-r-launcher-service a symlink instead of a copy so that it has the correct RPATH to find its bundled dependencies (steamrt/tasks#998, fixing a regression in 0.20251201.0) - When running s-r-launcher-service, try to use the executable of the matching architecture directly (steamrt/tasks#998) - Add s-r-supervisor to the relocatable bundle (steamrt/tasks#991) * s-r-launch-client: - Fix a regression in the experimental steamrt3c-based Steam client when a game's install folder contains non-ASCII characters, for example "steamapps/common/EVERSPACE™ 2" (steamrt/tasks#1003) * s-r-supervisor: - Add --[no-]terminate-with-main (steamrt/tasks#991) - Add --[no-]terminate-when-signaled (steamrt/tasks#991) - Using --terminate-timeout on its own implies --terminate-with-main for historical reasons, but this is now deprecated. Please use --terminate-timeout in conjunction with --terminate-with-main or --terminate-when-signaled to specify when to terminate the child processes. (steamrt/tasks#991) - Fix a race condition where we would not forward SIGINT, etc. to the main process if received after starting it, but before learning its process ID (steamrt/tasks#991) * s-r-launcher-interface-0: - Try to run s-r-launcher-service of matching architecture, same as for pressure-vessel (steamrt/tasks#998) * Update bubblewrap subproject to v0.11.2 * Update libglnx subproject to 2026-04-16 * Improve error reporting in various places when fds are closed * Documentation updates (steamrt/tasks#854) * Tests/CI: - Better test coverage (steamrt/tasks#845, steamrt/tasks#991, steamrt/tasks#1003) - CI fixes (steamrt/tasks#999, steamrt/tasks#1000) -
v0.20260414.0
protectedRelease: v0.20260414.0da4f26e2 · ·steam-runtime-tools v0.20260414.0 [ Antonio Ospite ] * Diagnostic tools: - steam-runtime-system-info: Make the report clearer if no issues are reported (steamrt/tasks#837) [ Simon McVittie ] * launcher-service: - Fix the experimental steamrt3c-based Steam client when run from the unofficial Flatpak app (steamrt/tasks#976) * CI fixes (steamrt/tasks#981) -
v0.20260327.0
protectedRelease: v0.20260327.0b26ec45a · ·steam-runtime-tools v0.20260327.0 * Diagnostic tools: - launch-options: Cope with the experimental steamrt3c-based Steam client putting reaper and steam-launch-wrapper in steamrt64/ (steamrt/tasks#972) * Tests: - Fix regressions (steamrt/tasks#837) -
v0.20260326.0
protectedRelease: v0.20260326.05d7c2ef4 · ·steam-runtime-tools v0.20260326.0 [ Simon McVittie ] * SteamLinuxRuntime_*: - Avoid $PRESSURE_VESSEL_VARIABLE_DIR being inherited by the command inside the container (steamrt/tasks#956) * pressure-vessel: - Take $VK_IMPLICIT_LAYER_PATH and $VK_ADD_IMPLICIT_LAYER_PATH into account when finding and remapping Vulkan layers, and avoid them "leaking" into the container unchanged (steamrt/tasks#964, steam-runtime#808) - Set $VK_LAYER_PATH, $VK_IMPLICIT_LAYER_PATH, $XR_API_LAYER_PATH in the container. Strictly speaking they're redundant with $XDG_DATA_DIRS, and we still need to set $XDG_DATA_DIRS for the benefit of older Vulkan-Loader versions and OpenXR implicit layers, but they make it more obvious which layers we are going to be loading and might be a little bit more efficient. (steamrt/tasks#964, steam-runtime#808) - Refactoring * Diagnostic tools: - Record $VK_IMPLICIT_LAYER_PATH and $VK_ADD_IMPLICIT_LAYER_PATH, and take them into account when listing Vulkan implicit layers (steamrt/tasks#964) * Update bubblewrap to v0.11.1 * Update libglnx subproject to 2026-03-24 [ Antonio Ospite ] * Diagnostic tools: - Provide clearer output if there are no locale issues to report (steamrt/tasks#837) - Refactoring - Documentation fixes * Tests: - Improve coverage (steamrt/tasks#837) -
v0.20260313.0
protectedRelease: v0.20260313.064a4608b · ·steam-runtime-tools v0.20260313.0 [ Simon McVittie ] * Diagnostic tools: - runtime: Don't diagnose steamrt3c as unofficial * Tests: - Don't fail if run against an unofficial (test-build) runtime [ Antonio Ospite ] * Tests: - Add coverage for GBM backend modules (steamrt/tasks#900) -
v0.20260312.0
protectedRelease: v0.20260312.046380e73 · ·steam-runtime-tools v0.20260312.0 [ Antonio Ospite ] * pressure-vessel: - Append host GBM backends to GBM_BACKENDS_PATH when running PV inside FEX, making them available for thunks (steamrt/tasks#900) * s-r-system-info: - Improve documentation (steamrt/tasks#837) * Tests: - Improve coverage (steamrt/tasks#837, steamrt/tasks#919) - Fix assertions that can fail on newer systems (steamrt/tasks#919) - Speed up container testing (steamrt/task#900) [ Simon McVittie ] * pressure-vessel: - Capture more of the libraries added by recent Nvidia drivers, up to and including version 590.x (steamrt/tasks#914, might help steam-runtime#799) - Capture libnvidia-pkcs11*.so.* again, fixing a regression in 0.20240806.0 - Refactoring * Update libglnx subproject to 2026-03-10 * Tests: - build-aux: Add a convenience command to run lint checks - Replace tests/pressure-vessel/containers.py with smaller tests that can run in parallel (the total coverage is the same) - Fix assertions that can fail on newer systems (steamrt/tasks#919, steamrt/tasks#313) - Skip a problematic test-case on older Ubuntu, testing a mode that we don't use in production (steamrt/tasks#824, steamrt/tasks#919, steamrt/tasks#934) - Don't write pressure-vessel debug logs to top-level CI log since this can result in limits being exceeded - Align artifacts subdirectory names with subTest names - Install pressure-vessel tests into /usr/libexec/installed-tests - Remove dead code (steamrt/tasks#824) - In CI, produce TAP output via python3-tap if possible - In CI, use new CI runners for better coverage (steamrt/tasks#919) -
v0.20260218.0
protectedRelease: v0.20260218.0ea0b90a6 · ·steam-runtime-tools v0.20260218.0 [ Antonio Ospite ] * pressure-vessel: - Capture GBM backend modules from the graphics provider. These are needed for accelerated EGL in some Nvidia driver versions, and for some streaming-related use-cases. (steamrt/tasks#900, steam-runtime#797) [ Simon McVittie ] * Tests and developer tools: - If configured with non-empty -Dtest_containers_dir, try to fail early if there are no i386 graphics drivers. We assume that developers who will run the full test suite have at least one user-space graphics driver each for x86_64 and i386. (steamrt/tasks#921) - Improve diagnostics when some in-container checks fail - build-aux/many-builds.py documentation improvements -
v0.20260217.1
protectedRelease: v0.20260217.18d2a6e73 · ·steam-runtime-tools v0.20260217.1 * Fix internal version numbering
-
v0.20260217.0
protectedRelease: v0.20260217.076156cc5 · ·steam-runtime-tools v0.20260217.0 * pressure-vessel: - Always use the Steam Runtime's time zone info /usr/share/zoneinfo, even if the host OS's glibc defaults to something non-FHS (steam-runtime#795) - Optionally "capture" OpenXR layers from the graphics stack provider into the container, similar to Vulkan layers. Like its equivalent for OpenXR runtimes, this is considered experimental, and could cause regressions by pulling in layers with non-trivial shared library dependencies, so for now it is only done if requested by setting environment variable PRESSURE_VESSEL_IMPORT_OPENXR_1_LAYERS to 1. (steamrt/tasks#734) * Diagnostic tools: - List OpenXR layers (steamrt/tasks#733) - Documentation improvements * Developer tools: - build-aux/many-builds.py fixes -
v0.20260213.0
protectedRelease: v0.20260213.06a3f8b40 · ·steam-runtime-tools v0.20260213.0 [ Simon McVittie ] * pressure-vessel: - Add more tools to relocatable bundle (steamrt/tasks#669) + s-r-check-requirements + s-r-steam-remote + srt-logger and logger-0.bash * Steam Linux Runtime 1.0: - Allow building against a local scout LD_LIBRARY_PATH tarball. This will let each scout release build a SteamLinuxRuntime.tar.xz with an included copy of that same scout release, decoupling the copy of scout used for SLR 1.0 from the copy of scout used to run the Steam client and the Legacy Runtime 1.0 (steamrt/tasks#663) - Improve test coverage (steamrt/tasks#663) - Drop test coverage for the strict/non-layered SLR 1.0, as used before June 2021 (steamrt/tasks#824) - Refactoring (steamrt/tasks#891, steamrt/tasks#845) [ Antonio Ospite ] * Diagnostic tools: - Detect GBM backends, such as `dri_gbm.so` (steamrt/tasks#900) - Refactoring (steamrt/tasks#900) - Documentation improvements (steamrt/tasks#900) * Tests: - Add a safety-catch against wrong parameter to generate-sysroots.py -
v0.20260115.0
protectedRelease: v0.20260115.0a016ccf0 · ·steam-runtime-tools v0.20260115.0 * Diagnostic tools: - s-r-check-requirements: Bail out with an error if elevated privileges are detected. In general Steam is not designed to be setuid, setgid or setcap, and it will either not work as expected or not enforce the security boundary if run with elevated privileges. (steam-runtime#787) - srt-logger: Similarly produce a "clean" error here: steam.sh starts srt-logger before s-r-check-requirements, so an error message is better diagnosis than a crash. -
v0.20260106.0
protectedRelease: v0.20260106.056a5878c · ·steam-runtime-tools v0.20260106.0 * pressure-vessel: - Add infrastructure for architecture-specific ld.so.conf - Provide Exherbo's architecture-specific ld.so.conf filenames (steam-runtime#791) * Documentation: - Document ld.so.conf requirements (steam-runtime#791) * Tests: - Fix CI regression with newer Vulkan-Headers (steam-runtime-tools!905) -
v0.20251210.0
protected7b651d1f · ·steam-runtime-tools v0.20251210.0 * pressure-vessel: - CPU emulators can now configure `server_argv` in their `emulator.json`, allowing a long-running process like FEXServer to amortize startup time across multiple emulator instances (steamrt/tasks#833, steamrt/tasks#870) - Make sure to display the error message for all possible errors in main() * Tests: - Improve some assertions -
v0.20251201.0
protectedRelease: v0.20251201.0f2cd297c · ·steam-runtime-tools v0.20251201.0 * pressure-vessel: - Fix CPU emulation when steam-runtime-launcher-interface-0 is of the native architecture (steamrt/tasks#868) - Fix CPU emulation when combined with STEAM_COMPAT_LAUNCHER_SERVICE=container-runtime, PRESSURE_VESSEL_SHELL=instead and similar debugging features (steamrt/tasks#868) - Improve container startup time when using CPU emulation (steamrt/tasks#851, steamrt/tasks#865, steamrt/tasks#868) - Graphics providers specified as a JSON manifest can tell pressure-vessel their own fallback library search path (steamrt/tasks#866) - Fix a minor memory leak with --shell or --terminal (steamrt/tasks#868) - Implement the equivalent of s-r-launcher-interface-0 internally, saving a subprocess (steamrt/tasks#868) - pv-adverb no longer provides --shell or --terminal options: equivalent functionality has moved back into pv-wrap (steamrt/tasks#868) - Build an experimental pressure-vessel-arm64+amd64+i386.tar.gz suitable for use with CPU emulation (steamrt/tasks#845) * Subprojects: - Update libcapsule to 0.20251201.0 + Search /usr/lib/i386-linux-gnu, /usr/lib64, etc. for libraries if not found in /etc/ld.so.cache (steamrt/tasks#866, steam-runtime#704) * Packaging: - Ensure packages from this source are upgraded in lockstep * build-aux: - Build s-r-launcher-service, etc. for scout i386. Developers with an existing build tree will need to re-run `build-aux/many-builds.py setup` after this change. (steamrt/tasks#868) * Tests: - Improve pv-wrap test coverage - Do a CI build against steamrt4 - Do the aarch64 relocatable build against steamrt3c in preference to Debian 11 - CI updates * Documentation updates -
v0.20251120.0
protectedRelease: v0.20251120.0189e0693 · ·steam-runtime-tools v0.20251120.0 * pressure-vessel: - Accept STEAM_COMPAT_EMULATOR (which is intended to be set by Steam when appropriate) as equivalent to PRESSURE_VESSEL_EMULATOR (which is reserved for development and debugging) (steamrt/tasks#844) - Graphics stacks can be specified with a JSON manifest, in either STEAM_COMPAT_GRAPHICS_PROVIDER (intended to be set by Steam when appropriate) or PRESSURE_VESSEL_GRAPHICS_PROVIDER (reserved for development and debugging). The JSON manifest lists the architectures supported by the graphics provider, and the root filesystem will be used for any remaining architectures. Additional fields are likely to be added to the JSON manifest in future pressure-vessel releases to reduce startup delays during emulation. (steamrt/tasks#846, steamrt/tasks#851) - Import libsystemd.so.0 into the container if available. We use this if logging to the systemd Journal has been enabled. (steamrt/tasks#853) - pv-wrap: Don't cache the libdl ${PLATFORM}, no longer used (steamrt/tasks#851) * Library code: - Correctly forget cached libdl info if the execution environment is reconfigured (steamrt/tasks#851) - Refactoring (steamrt/tasks#846) * Documentation updates for steamrt4 release (steamrt/tasks#854) -
v0.20251117.0
protectedRelease: v0.20251117.05b41cb57 · ·steam-runtime-tools v0.20251117.0 * SteamLinuxRuntime_*: - Write PRESSURE_VESSEL_ARCHITECTURES into ./run, so that pressure-vessel automatically knows the architecture of the runtime (steamrt/tasks#847) - Silence a warning with newer mypy * pressure-vessel: - If the root filesystem doesn't have glibc for a desired architecture, but a non-root-filesystem graphics provider does, use the graphics provider's ld.so(8) and libraries to run capsule-capture-libs and similar helper subprocesses. This assumes that the graphics provider follows one of the common filesystem layouts (in practice either Debian multiarch, Red Hat/FHS multilib or Arch multilib). (steamrt/tasks#809, steamrt/tasks#828) - emulator.json files can set/unset environment variables, either for all emulated processes or only inside the container (steamrt/tasks#831) - emulator.json files can have different configurations when running setup commands outside the SLR container, setup commands inside the SLR container, or the main command (app, game or Proton) inside the SLR container (steamrt/tasks#839) - Use more automatic resource management - Refactoring * Diagnostic tools: - Avoid unneeded dependencies on json-glib in tools that don't parse JSON, like steam-runtime-check-requirements - When testing a sysroot, use the sysroot's ld.so(8) and libraries to run functional tests, or skip them if they cannot usefully be run in this way. As with the similar pressure-vessel change, this will only work if the sysroot follows one of the common filesystem layouts. (steamrt/tasks#828) - Introduce a new error code for "no information available" when checking locales * s-r-launch-options: - Automatically detect if a future version of Proton requires steamrt4 (or steamrt5, for future-proofing) * Library code: - Use more automatic resource management - Refactoring (steamrt/tasks#828, steamrt/tasks#831) * Documentation updates -
v0.20251103.0
protectedRelease: v0.20251103.0cfa89963 · ·steam-runtime-tools v0.20251103.0 * pressure-vessel: - Fix a small memory leak in pv-adverb while setting up VDPAU drivers (steam-runtime-tools!862, steamrt/tasks#786) - Only enumerate OpenXR runtimes that belong to the appropriate architecture's graphics provider (steamrt/tasks#785, steamrt/tasks#786) - Change how we handle per-architecture modules for LD_PRELOAD, LD_AUDIT, VDPAU drivers, SDL_DYNAMIC_API and SDL3_DYNAMIC_API, enabling it to scale to more than two architectures at a time (steamrt/tasks#786) - Add experimental option (currently only available as an environment variable) to set the architectures used, and which one is treated as primary (steamrt/tasks#786) + Automatically set up pressure-vessel's own architecture to be available in the container, even if the runtime doesn't have it (steamrt/tasks#787) - Add experimental option (currently only available as an environment variable) to run foreign-architecture binaries under a non-transparent emulator such as FEX without requiring binfmt_misc (steamrt/tasks#787) + Automatically set up its architecture and required libraries to be available in the container, even if the runtime doesn't have it (steamrt/tasks#787) - Only look for Ubuntu's /sbin/ldconfig.real in the same graphics stack provider as /sbin/ldconfig (steamrt/tasks#821) - Stop hard-coding an array of supported architectures. Instead, we have a hard-coded array of default architectures, in practice the same list as before, but any architecture for which steam-runtime-tools was successfully compiled can in principle be used to run a runtime for any other architecture. (steamrt/tasks#786) - Detect the actual architecture of pv-adverb, and use that information when starting it (steamrt/tasks#821) - Detect the actual architecture of /sbin/ldconfig, and use that information to decide which libraries will appear in /etc/ld.so.cache and which libraries need to remain in $LD_LIBRARY_PATH (steamrt/tasks#821) - Use more automatic resource management - Refactoring (steamrt/tasks#786, steamrt/tasks#821, steamrt/tasks#787) * s-r-launcher-service: - Avoid a small memory leak if an error occurs on the deprecated `--socket` or `--socket-directory` code paths * Diagnostic tools: - Use automatic memory management in more places * Library code: - Use more automatic resource management - Further refactoring of architecture handling (steamrt/tasks#786, steamrt/tasks#821, steamrt/tasks#787) - Better compatibility with GLib >= 2.78 (steamrt/tasks#787) - Improve thread-safety (steamrt/tasks#787) - Documentation updates (steamrt/tasks#787) * Tests: - Now that the supported architectures are not hard-coded, we can test some of the aarch64 code paths even if pressure-vessel was compiled for x86, and vice versa (steamrt/tasks#786) - Improve coverage (steamrt/tasks#786, steamrt/tasks#821, steamrt/tasks#787) - Check for fd leaks more thoroughly (steamrt/tasks#787) -
v0.20250926.0
protectedRelease: v0.20250926.0567f7171 · ·steam-runtime-tools v0.20250926.0 [ Simon McVittie ] * pressure-vessel: - Fix a crash in the rare scenario that two different Vulkan/EGL drivers, layers, etc. of the same type are implemented by hard links or symbolic links to the same library (steam-runtime-tools!849) - Fix sense of check for root as graphics stack provider when deciding how to handle LD_PRELOAD=libfoo.so.0 (steam-runtime-tools!830) - STEAM_COMPAT_RUNTIME_SDL2=classic tries to select "classic" SDL2, even if sdl2-compat is the default. This will only work in Steam Linux Runtime releases that include the libsdl2-classic package: at the time of writing there are no such releases, but the next soldier and sniper betas should have this. This is a step towards making sdl2-compat the new default. (steamrt/tasks#774) - Make better use of cached information about drivers (steam-runtime-tools!831, steam-runtime-tools!832) - Add experimental options to select separate graphics stack providers on a per-architecture basis. For best results they should all be at the same version of key components such as glibc and Mesa: for example, x86_64 Debian 13 and i386 Debian 13 works well, but x86_64 Debian 13 and i386 Debian 12 or vice versa should not be expected to be reliable. (steamrt/tasks#785) - Improve correctness of how we handle different JSON manifests referring to the same Vulkan/EGL driver, layer, etc. on different architectures (steamrt/tasks#805) - Refactoring (steamrt/tasks#785, steamrt/tasks#786, steamrt/tasks#805, steamrt/tasks#808, steamrt/tasks#810) * Diagnostic tools: - x86_64 is now sorted before i386 in steam-runtime-system-info output - steam-runtime-launch-options now offers 'Use "classic" SDL2' as a choice for the "SDL 2" option. This is equivalent to STEAM_COMPAT_RUNTIME_SDL2=classic (see above). (steamrt/tasks#774) * Library code: - Fix fallback multiarch tuple for otherwise unsupported architectures (steam-runtime-tools!836) - More internal utility functions (steam-runtime-tools!839) - Refactoring in architecture handling (steamrt/tasks#785, steamrt/tasks#786, steamrt/tasks#805) * Packaging: - d/libsteam-runtime-tools-0-0.symbols: Belatedly update for 0.20250820.0 * Tests: - Improve test coverage (steam-runtime-tools!847, steamrt/tasks#786) - Fix unit test regression on Debian 14 prereleases (steamrt/tasks#796) - Fix a Meson deprecation warning - CI updates [ Tony Wasserka, Simon McVittie ] * Diagnostic tools: - Improve keyboard navigation in steam-runtime-launch-options (steamrt/tasks#795) [ Timo Witte ] * Fix a typo (ValveSoftware/steam-runtime#775)