Skip to content
Tags give the ability to mark specific points in history as being important
  • v0.20240415.0 protected
    bdf30201 · Prepare v0.20240415.0 ·
    Release: v0.20240415.0
    steam-runtime-tools v0.20240415.0
    
      * steam-runtime-supervisor:
        - New tool, a less specialized version of pressure-vessel-adverb
          (steamrt/tasks#387)
      * pressure-vessel:
        - Better handling of LD_PRELOAD modules and VDPAU drivers on
          distributions like Clear Linux and Solus that use lib64 and lib32
          directories (steam-runtime#642)
        - Update srt-bwrap to be identical to bubblewrap v0.9.0
          + Use a clearer error message when mount(2) fails with ENOSPC
            (ValveSoftware/steam-runtime#637)
          + Make --symlink idempotent
          + Add --argv0 option
          + Fix a double-close
          + Fix various compiler warnings, etc.
          + Improve documentation
      * SLR_soldier, SLR_sniper:
        - Rename files in *_platform_*/files/ that could cause distribution
          issues or be deleted by over-zealous cleanup tools
          (steam-for-linux#10614, steamrt/tasks#422)
          + non-Windows-friendly filenames (containing :, etc.)
          + **/__pycache__/*.pyc
          + **/.cache/**
          + **/tmp/**
        - Save some space by using the same mechanism to preserve hard-links
      * Refactoring
  • v0.20240321.1 protected Release: v0.20240321.1
    steam-runtime-tools v0.20240321.1
    
      * pressure-vessel:
        - Fix a regression in handling of Vulkan layers since 0.20240301.0
          (steam-runtime#662)
        - pv-adverb: Don't corrupt stdout if we emit a debug message during
          command-line parsing
      * pv-verify:
        - Don't fail verification for parents of a contents= filename
          (steamrt/tasks#422)
      * SteamLinuxRuntime, SLR_soldier, SLR_sniper:
        - Add filter_exclusive property to tool manifests (steamrt/tasks#426)
      * Packaging:
        - Don't build steam-runtime-tools-ui on Steam Runtime 1½ 'heavy'
        - Fix some typos in the previous changelog entry
      * Tests:
        - test-logger: Avoid a race condition that could make the test fail
  • v0.20240321.0 protected
    e5a61e1d · Prepare v0.20240321.0 ·
    Release: v0.20240321.0
    steam-runtime-tools v0.20240321.0
    
      * steam-runtime-system-info:
        - Do the same functional tests on bwrap that were previously only
          done in s-r-check-requirements (steamrt/tasks#406)
        - Do a functional test on flatpak-portal subsandboxes
          (steamrt/tasks#406)
      * steam-runtime-check-requirements:
        - Emit more specific messages for several common bwrap problems
          (steamrt/tasks#406)
        - Detect several common Flatpak problems (steamrt/tasks#406)
      * steam-runtime-launch-client:
        - Document --env-fd
      * srt-logger:
        - New tool to divert command output to a log file (with rotation),
          the terminal from which Steam was run (if any), and optionally
          the systemd Journal (steamrt/tasks#393)
        - Unset LD_PRELOAD etc. before running srt-bwrap, matching what we will
          actually do in pressure-vessel (steam-runtime#658)
      * steam-runtime-dialog:
        - New tool, a wrapper for zenity-style UIs (steamrt/tasks#376)
      * steam-runtime-dialog-ui:
        - New tool, a fallback UI for steam-runtime-dialog (steamrt/tasks#376)
      * steam-runtime-launch-options:
        - Use ~/.steam/root/steam-dialog, if available, in preference to zenity
      * pressure-vessel:
        - Treat $BWRAP as less-preferred than pv-bwrap. The order we try is now:
          $PRESSURE_VESSEL_BWRAP > srt-bwrap > $BWRAP > system bwrap
          instead of the previous:
          $PRESSURE_VESSEL_BWRAP > $BWRAP > srt-bwrap > system bwrap
        - Add a PRESSURE_VESSEL_WORKAROUNDS environment variable.
          This is a space- or comma-separated list of
          workarounds to enable ("+foo") or disable ("-foo").
          Currently workarounds `steam-snap#356`, `steam-snap#369` and
          `steam-snap#370` are enabled by default while running under Snap,
          but they can be disabled to test new Snap releases where the relevant
          bug has been fixed.
          For non-Snap systems, the initial workarounds are `bwrap-no-perms`
          and `bwrap-setuid`, which are used automatically if they appear to be
          needed, but can be explicitly enabled or disabled for testing.
        - Fix a regression when using a setuid system copy of bubblewrap
          (steam-runtime#650)
        - Make library dependencies in /var/lib/snapd/hostfs available,
          fixing missing /usr/share/nvidia (steam-runtime#586).
          This is only done if `-steam-snap#359` appears in
          PRESSURE_VESSEL_WORKAROUNDS.
        - Make library dependencies in /snap available, fixing missing
          /usr/share/libdrm (steam-runtime#586).
          This cannot yet be done by default because it is not allowed by the
          AppArmor profile (canonical/steam-snap/issues/359), so it is only done
          if "-steam-snap#359" appears in PRESSURE_VESSEL_WORKAROUNDS.
        - Under Flatpak, use --env-fd to shorten s-r-launch-client command line
        - Remove dead code for non-subsandbox Flatpak
        - Refactoring
      * SteamLinuxRuntime_sniper.sh:
        - exec entry point instead of running it as a subprocess.
          This saves us a process, and more directly, it means that there's one
          fewer process that will not terminate its descendants when killed.
        - Use ~/.steam/root/steam-dialog for UI if available
      * Refactoring
      * tests: Improve unit test coverage
  • v0.20240306.0 protected
    346197eb · Prepare v0.20240306.0 ·
    Release: v0.20240306.0
    steam-runtime-tools v0.20240306.0
    
      * steam-runtime-check-requirements:
        - Adjust wording of messages (steamrt/tasks#406)
      * pressure-vessel:
        - Update libcapsule to a version that works around smaller-than-default
          stack limits by using heap allocation (steam-runtime#653)
        - Work around more AppArmor profile issues in snapd
          (steamrt/tasks#408, canonical/steam-snap#369, canonical/steam-snap#370)
  • v0.20240301.0 protected
    2266ff49 · Release v0.20240301.0 ·
    Release: v0.20240301.0
    steam-runtime-tools v0.20240301.0
    
      * steam-runtime-check-requirements:
        - Diagnose some common situations that will break steamwebhelper
          now that it runs under a sniper container (steamrt/tasks#406)
          + Check for a working version of bubblewrap (either our bundled copy
            srt-bwrap if unprivileged processes can create new user namespaces
            or a setuid-root system copy if they cannot), reporting an error
            message if none can be found
          + Check whether ~/.steam/root is below /usr, reporting an error
            message if it is
        - Add repeatable -v option to show more info, similar to flatpak -vv
      * steam-runtime-system-info:
        - Add a diagnostic flag for running Steam from below /usr (just for
          completeness, since Steam will no longer launch successfully in this
          situation)
      * pressure-vessel:
        - Work around several important paths being symlinks to a non-shared
          filesystem by automatically sharing their symlink targets:
          - ~/.config/cef_user_data, fixing a steamwebhelper crash
            (steamrt/tasks#411)
          - ~/.cache, $XDG_CACHE_HOME
          - ~/.config, $XDG_CONFIG_HOME
          - ~/.local/share, $XDG_DATA_HOME
          - ~/.local/state, $XDG_STATE_HOME
          - $XDG_CONFIG_DIRS
          - $XDG_DATA_DIRS
          - ~/.local/share/Steam
        - Unset STEAM_ZENITY on entry, and reset it to a path accessible inside
          the container runtime before running the game (steamrt/tasks#397)
        - If the Steam Deck's system tracing developer option is enabled,
          mount /sys/kernel/tracing rw (steamrt/tasks#404)
        - Change pv-adverb exit status to 126 (was 127) if the executable was
          found but could not be run
        - Change pv-adverb exit status to 255 (was 69) if we somehow lose track
          of the main process
        - Fix pv-adverb --assign-fd=X=Y so that only Y is required to be open
          already (previously X was also required to be open)
        - Improve pv-adverb test coverage
        - Only build pressure-vessel during development builds, or if targeting
          Steam Runtime 1.0 'scout' (which is the source of the official
          binary releases, for maximum cross-distro compatibility)
        - Adjust for rename of pv-bwrap to srt-bwrap
      * Steam Linux Runtime 1.0 (scout):
        - Remove workaround for a mid 2021 configuration change
      * steam-runtime-launcher-service --alongside-steam:
        - Only unset STEAM_ZENITY if it belongs to the LDLP runtime.
          Keep it as-is if it's the empty string (used on Steam Deck to disable
          use of zenity) or if it's the absolute path to the host zenity.
          (steamrt/tasks#397)
      * steam-runtime-launch-options:
        - If GUI dependencies are missing, log that to stderr
        - Don't use zenity if STEAM_ZENITY is explicitly set empty
          (steamrt/tasks#397)
        - Don't re-enter the scout runtime to run system zenity
          (steamrt/tasks#396, steamrt/tasks#397)
      * Library code / tree-wide changes:
        - Change "adverb" commands' exit status to 255 (previously 70 for
          pv-adverb, 128 for launch-client and launcher-interface-0)
          if the wait status cannot be parsed, consistent with bubblewrap
        - Move some code from pressure-vessel to be shareable between tools
        - Avoid using Flatpak-derived code outside pressure-vessel,
          to simplify the build
        - Update libglnx to 2024-02-09
        - Use libglnx's backport of g_fdwalk_set_cloexec() everywhere, for
          better async-signal-safety
        - Factor out basic libc-based utility functions into a static library
        - Better automated test coverage
      * Documentation updates
  • v0.20240212.0 protected
    e4db9be5 · Prepare v0.20240212.0 ·
    Release: v0.20240212.0
    steam-runtime-tools v0.20240212.0
    
      * pressure-vessel:
        - Look for internal Nvidia helper libraries by their canonical names,
          which will be helpful if canonical/steam-snap#361 is fixed
          (steam-runtime#586)
        - Drop code paths that we have not used in production since mid 2021:
          + Remove support for providing the runtime as a tar archive
          + Remove obsolete command line options:
            - pv-wrap --runtime-archive=...
            - pv-wrap --runtime-id=...
            - populate-depot.py --include-sdk-debug
            - populate-depot.py --include-sdk-runtime
            - populate-depot.py --no-minimize
            - populate-depot.py --no-unpack-runtime
          + Stop checking for and deleting pre-2021 unpack/deploy directories
        - Improve test coverage
        - Refactoring
        - CI: Simplify path to relocatable amd64+i386 build of pressure-vessel
      * Steam Linux Runtime 1.0 (scout):
        - Stop generating and uploading steam-container-runtime.tar.gz,
          superseded by SteamLinuxRuntime.tar.xz (steamrt/tasks#388)
      * Diagnostic tools:
        - Report some more VR-related environment variables (steam-runtime#575)
        - check-vulkan: Update list of known errors for v1.3.275
      * s-r-launch-options:
        - Label medic and steamrt5 runtimes nicely
      * Library code:
        - Refactoring
      * Documentation updates
  • v0.20240126.0 protected
    5939215e · Prepare v0.20240126.0 ·
    Release: v0.20240126.0
    steam-runtime-tools v0.20240126.0
    
      * SteamLinuxRuntime_sniper.sh: Tolerate CRLF line endings in VERSIONS.txt
        (steamrt/tasks#375)
  • v0.20240125.0 protected
    37c764a8 · Prepare v0.20240125.0 ·
    Release: v0.20240125.0
    steam-runtime-tools v0.20240125.0
    
      * pressure-vessel:
        - When running in Flatpak, forward inherited fds to subsandbox
          (steam-runtime#644, fixing a regression in 0.20240103.0)
  • v0.20240124.1 protected Release: v0.20240124.1
    steam-runtime-tools v0.20240124.1
    
      * pressure-vessel:
        - Temporarily go back to using /run/pressure-vessel/ldso under Snap.
          This is a workaround for snapd's steam_support AppArmor profile
          making overly specific assumptions about pressure-vessel implementation
          details, and will be reverted in a future release.
          (canonical/steam-snap#356, steam-runtime#640)
      * SteamLinuxRuntime_sniper, etc.:
        - Fix relative path from steampipe metadata to top-level regular files
          (steamrt/tasks#375)
  • v0.20240124.0 protected
    b7491311 · Release v0.20240124.0 ·
    steam-runtime-tools v0.20240124.0
    
      * pressure-vessel:
        - Temporarily go back to using /run/pressure-vessel/ldso under Snap.
          This is a workaround for snapd's steam_support AppArmor profile
          making overly specific assumptions about pressure-vessel implementation
          details, and will be reverted in a future release.
          (canonical/steam-snap#356, steam-runtime#640)
      * SteamLinuxRuntime_sniper, etc.:
        - Fix relative path from steampipe metadata to top-level regular files
          (steamrt/tasks#375)
  • v0.20240123.2 protected
    adae43e6 · Prepare v0.20240123.2 ·
    Release: v0.20240123.2
    steam-runtime-tools v0.20240123.2
    
      * SteamLinuxRuntime_sniper.sh, etc.:
        - Avoid corrupting machine-readable output on stdout, if any
        - If no COMMAND, just print an entry point to use later
        - Allow using a name not matching tarball content
        - Accept .version.txt as an alternative to .VERSIONS.txt
        (steamrt/tasks#375, steamrt/tasks#385)
  • v0.20240123.1 protected
    e18877a8 · Release v0.20240123.1 ·
    steam-runtime-tools v0.20240123.1
    
      * upload-artifacts: Really upload SteamLinuxRuntime.tar.xz
        (steamrt/tasks#375, steamrt/tasks#376)
  • v0.20240123.0 protected
    967aac39 · Prepare v0.20240123.0 ·
    Release: v0.20240123.0
    steam-runtime-tools v0.20240123.0
    
      * SteamLinuxRuntime_sniper, etc.:
        - Optionally generate Steampipe upload configuration
        - Optionally generate an archive, and a script to unpack and launch it
          (steamrt/tasks#375, steamrt/tasks#376)
  • v0.20240119.0 protected
    b0dd8468 · Release v0.20240119.0 ·
    Release: v0.20240119.0
    steam-runtime-tools v0.20240119.0
    
      * SteamLinuxRuntime 1.0 (scout):
        Catch up with changed filenames in the Steam client client beta,
        fixing a regression for SLR 1.0 games (steamrt/tasks#382)
      * Documentation updates
      * Add missing newline to some error messages
      * pv-adverb: Describe target of each redirection if debugging
  • v0.20240103.0 protected
    3d430f8c · Prepare v0.20240103.0 ·
    Release: v0.20240103.0
    steam-runtime-tools v0.20240103.0
    
      * pv-wrap: Don't register stdout, stderr, --pass-fd with FlatpakBwrap.
        This fixes two separate issues:
        - if stdout/stderr were directed to a log file, pv-adverb output would
          start again at byte 0, overwriting pv-wrap output;
        - on error, we would crash with an assertion failure on trying to close
          those fds twice
        (steamrt/tasks#370, fixing a regression in v0.20230621.0)
  • v0.20231208.0 protected
    c43e6fa8 · Prepare v0.20231208.0 ·
    Release: v0.20231208.0
    steam-runtime-tools v0.20231208.0
    
      * pressure-vessel:
        - Try to load NSS plugins without relying on ld.so.cache, fixing
          their discovery on heavily customized OSs (steam-runtime#632)
        - Look up graphics libraries by their concrete SONAMEs, for the same
          reason
        - Improve compatibility with FEX-Emu (steamrt/tasks#342).
          The part of this change that is visible to those not using FEX
          is that ld.so.cache inside the container moves from /run to /var.
      * Steam Linux Runtime depots:
        - Remove all DRI plugins from future SLR branches, saving around 100M
          (steamrt/tasks#364)
        - When running pv-verify, allow SteamLinuxRuntime_whatever/.ref to exist
  • v0.20231128.0 protected
    52d02f09 · Release v0.20231128.0 ·
    Release: v0.20231128.0
    steam-runtime-tools v0.20231128.0
    
      * pressure-vessel:
        - Log a warning if we can't set up /etc/timezone
        - If emitting debug messages, include the full contents of the new
          ld.so.cache (steamrt/tasks#357, steam-runtime#630)
        - Make SRT_LOG=debug activate extra output.
          Previously, only --verbose or PRESSURE_VESSEL_VERBOSE would have
          activated this.
        - Better compatibility with very old CPUs, especially when using VDPAU,
          if the host OS has a supported expansion of ${LIB}
          + Affected Intel CPUs are older than "Haswell" (2013)
          + Affected AMD CPUs are older than "Excavator" (2015)
          + Systems where this works are those that use multiarch
            (Debian/Ubuntu or Flatpak), FHS multilib (Red Hat, etc.) or
            Arch Linux's multilib variant. Other systems where ${LIB} expands
            to distinct values for 32- and 64-bit x86 can easily be added to
            this mechanism if their users open an issue with the details.
        - Better compatibility with FEX-Emu, especially when using VDPAU
          (steamrt/tasks#349)
        - pv-verify: New tool to verify a directory against a mtree(5) manifest
        - Refactoring
      * Diagnostic tools:
        - Improve performance of steam-runtime-system-info, especially when
          running under FEX-Emu emulation (steam-runtime-tools#88)
        - Stop relying on ability to run timeout(1), which might improve
          compatibility with some sandboxed or limited environments
          (steam-runtime-tools#88)
        - Resync wflinfo implementation with waffle 1.8.0
      * Steam Linux Runtime depots:
        - In usr-mtree.txt.gz, only put permissions in mode=, not all of st_mode,
          matching bsdtar(1) and mtree(8)
        - In usr-mtree.txt.gz, truncate fractional seconds to ".0" if zero
        - Add a top-level mtree manifest for the depot as a whole.
          In SLR 2.0 (soldier) and 3.0 (sniper), after pressure-vessel has been
          updated to a suitable version, it will be possible to verify the
          depot against its manifest by running a command like:
            /path/to/SteamLinuxRuntime_soldier/pressure-vessel/bin/pv-verify
          In SLR 1.0 (scout) the equivalent is:
            /path/to/SteamLinuxRuntime_soldier/pressure-vessel/bin/pv-verify \
                path/to/SteamLinuxRuntime
      * Library code:
        - Refactor helper subprocess launching
        - Make execution environment for helper subprocesses more consistent
      * Tests:
        - Make the pv-adverb test coverage more realistic
        - When using valgrind, don't show reachable objects by default
        - Fix a minor memory leak in check-xdg-portal (not significant during
          production use since this is not a long-lived process)
        - Stop diagnosing memory leaks in wflinfo (not significant during
          production use since this is not a long-lived process)
  • v0.20231107.1 protected Release: v0.20231107.1
    steam-runtime-tools v0.20231107.1
    
      * Fix internal version information
  • v0.20231107.0 protected
    6e34958d · Release v0.20231107.0 ·
    Release: v0.20231107.0
    steam-runtime-tools v0.20231107.0
    
      * All CLI tools: Consistently unblock and unignore signals during startup
        (steamrt/tasks#354)
      * system-info:
        - Document JSON format for virtualization
        - Add an option to skip checking libraries
        - Add an option to skip graphics smoke-tests
        - Use the common log handler, so SRT_LOG takes effect
        - steam-runtime-system-info --verbose now outputs all fields from
          os-release(5)
      * pressure-vessel: Refactoring
      * urlopen: Use steam://openurl_external to open http, https URLs
        (steamrt/tasks#80)
      * Library code:
        - SrtSystemInfo: Avoid using fd-relative I/O for the real root, making
          several diagnostics more accurate when running under FEX-Emu:
          * DRI, VA-API and VDPAU modules (steamrt/tasks#347)
          * Vulkan layers
          * os-release(5) (steamrt/tasks#342)
          * ld.so (steamrt/tasks#348)
          * /overrides
        - SrtSystemInfo: Make more use of fd-relative I/O when acting on a
          sysroot, avoiding being misled by absolute symbolic links
        - SrtSystemInfo: Break reference cycles in dispose() if necessary
        - SrtSystemInfo: Fix assertion failure if failing to get container
          information
        - SrtSystemInfo: Keep better track of whether opening a sysroot failed
        - SrtVirtualizationInfo: Add missing getter for host-machine property
        - SrtVirtualizationInfo: Add os-release(5) from the host system under
          FEX-Emu
        - Collect os-release(5) path, canonicalized path, and any diagnostic
          messages about errors parsing it, not just its contents
        - Improve test coverage
        - Improve build robustness in scout
        - Refactoring
      * Tests:
        - Move non-pressure-vessel-specific tests to tests/
        - Fix test failure with a custom value for LC_ADDRESS
        - Remove unused imports
  • v0.20231013.1 protected
    bac27c41 · Release v0.20231013.1 ·
    Release: v0.20231013.1
    steam-runtime-tools v0.20231013.1
    
      * launcher-service: Unblock and unignore all signals during startup,
        fixing detection of subprocesses exiting when launched by Steam
        (steamrt/tasks#354, ValveSoftware/SteamVR-for-Linux#618)