Tags

Tags give the ability to mark specific points in history as being important
  • v0.20260505.0

    protected
    367c3870 · Prepare v0.20260505.0 ·
    Release: v0.20260505.0
    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

    protected
    cf35fb6a · Release v0.20260430.0 ·
    Release: v0.20260430.0
    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

    protected
    cd18012e · Release v0.20260428.0 ·
    Release: v0.20260428.0
    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

    protected
    da4f26e2 · Prepare v0.20260414.0 ·
    Release: v0.20260414.0
    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

    protected
    b26ec45a · Prepare v0.20260327.0 ·
    Release: v0.20260327.0
    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

    protected
    5d7c2ef4 · Prepare v0.20260326.0 ·
    Release: v0.20260326.0
    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

    protected
    64a4608b · Prepare v0.20260313.0 ·
    Release: v0.20260313.0
    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

    protected
    46380e73 · Prepare v0.20260312.0 ·
    Release: v0.20260312.0
    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

    protected
    ea0b90a6 · Prepare v0.20260218.0 ·
    Release: v0.20260218.0
    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

    protected Release: v0.20260217.1
    steam-runtime-tools v0.20260217.1
    
      * Fix internal version numbering
  • v0.20260217.0

    protected
    76156cc5 · Release v0.20260217.0 ·
    Release: v0.20260217.0
    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

    protected
    6a3f8b40 · Prepare v0.20260213.0 ·
    Release: v0.20260213.0
    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

    protected
    a016ccf0 · Prepare v0.20260115.0 ·
    Release: v0.20260115.0
    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

    protected
    56a5878c · Prepare v0.20260106.0 ·
    Release: v0.20260106.0
    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

    protected
    7b651d1f · Prepare v0.20251210.0 ·
    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

    protected
    f2cd297c · Prepare v0.20251201.0 ·
    Release: v0.20251201.0
    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

    protected
    189e0693 · Prepare v0.20251120.0 ·
    Release: v0.20251120.0
    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

    protected
    5b41cb57 · Release v0.20251117.0 ·
    Release: v0.20251117.0
    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

    protected
    cfa89963 · Prepare v0.20251103.0 ·
    Release: v0.20251103.0
    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

    protected
    567f7171 · Prepare v0.20250926.0 ·
    Release: v0.20250926.0
    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)