Tags give the ability to mark specific points in history as being important
  • v0.20230314.0 protected
    3ec2cb5c · Release v0.20230314.0 ·
    Release: v0.20230314.0
    steam-runtime-tools v0.20230314.0
      [ Simon McVittie ]
      * pv-wrap: Stop providing /run/host/container-runtime.
        This was never an intended way to detect the container environment:
        the intended interface is to look for /run/host/container-manager, as
        per <https://systemd.io/CONTAINER_INTERFACE/>.
        Removing this will cause controller hotplug detection to regress in
        games that bundled their own copy of SDL between 2.25.x (sometime
        around September 2022) and 2.26.4. However, removing this can also
        avoid a crash with some bundled SDL versions.
        The regression can be avoided by not bundling SDL, and instead
        relying on the Steam Runtime to provide a sufficiently recent version.
      [ Ludovico de Nittis ]
      * graphics-provider: Ignore Homebrew/Linuxbrew paths.
        Older versions of Homebrew used to install `ldconfig` into the general
        Homebrew bin directory that was usually prepended to PATH. This
        could result in crashes, because ldconfig is tightly coupled to the
        version of glibc in use, and we would try to use Homebrew's ldconfig
        with the system glibc. Newer versions of Homebrew avoid this by not
        putting their ldconfig in the PATH. (steam-runtime#569)
      * wrap-setup: Preserve a custom XCURSOR_PATH values from the host
      [ Simon McVittie, Miguel Casique Meneses ]
      * Tests/CI adjustments (steamrt/tasks#248)
  • v0.20230227.0 protected
    3c807534 · Release v0.20230227.0 ·
    Release: v0.20230227.0
    steam-runtime-tools v0.20230227.0
      [ Ludovico de Nittis ]
      * library: Separate the libelf based checks into a separate helper.
        We can't compile inspect-library with an RPATH because we want to
        load libraries as the host system does, which means we can't guarantee
        to be able to find libelf.so.1 if the host system doesn't have it.
        Avoid this dependency by moving the libelf based checks into a separate
        helper program, with the right RPATH to find the bundled copy. This
        also keeps that code out of the critical path for identifying
        graphics drivers in pressure-vessel.
        (steamrt/tasks#236, steam-runtime#562)
      * inspect-library helper: Refactoring
  • v0.20230220.0 protected
    87b78c8b · Release v0.20230220.0 ·
    Release: v0.20230220.0
    steam-runtime-tools v0.20230220.0
      * pressure-vessel:
        - Ensure Vulkan layer manifests are all in the same
          directory, fixing a regression in 0.20230206.0 for layers like
          MangoHUD that use $LIB or $PLATFORM in their layer_path
          (steamrt/tasks#239, steam-runtime#564)
        - Log critical warnings if layers are not going to work
        - Don't append layers to VK_DRIVER_FILES under FEX-Emu
      * steam-runtime-launch-options:
        - Allow edits to the game's command-line options.
          As with all settings in steam-runtime-launch-options, these are
          not saved from one run to the next, so this is a convenient way to
          make temporary changes like adding -vulkan to Source-engine-based
          games without affecting the next run of the same game.
  • v0.20230216.0 protected
    41df1928 · Release v0.20230216.0 ·
    Release: v0.20230216.0
    steam-runtime-tools v0.20230216.0
      * check-vulkan: Add new error codes from Vulkan-Loader v1.3.239
      * pv-wrap: Temporarily provide /run/host/container-runtime.
        This is a hotfix for a SDL 2.26.x regression that broke controller
        hotplug (steamrt/tasks#234)
  • v0.20230206.0 protected
    46af2204 · Prepare v0.20230206.0 ·
    Release: v0.20230206.0
    steam-runtime-tools v0.20230206.0
      [ Ludovico de Nittis ]
      * pressure-vessel: Reuse the basename of Vulkan drivers.
        Since Vulkan Loader 1.3.234, it is possible to select which driver to
        use by listing their names in the environment variable
        `VK_LOADER_DRIVERS_SELECT`, but this functionality will only work with
        pressure-vessel if we keep the original JSON manifest name.
        (steamrt/tasks#223, steam-runtime#558)
  • v0.20230131.0 protected
    6285cc0c · Prepare v0.20230131.0 ·
    Release: v0.20230131.0
    steam-runtime-tools v0.20230131.0
      [ Ludovico de Nittis ]
      * runtime: Correct path_visible_in_provider_namespace() check.
        This makes Vulkan layers work more reliably, particularly if installed
        into ~/.local/share for a home directory in /home (steamrt/tasks#213).
      [ Simon McVittie ]
      * CI: Build and upload content for Steam app 1070560 (SteamLinuxRuntime)
        rather than handling it as a special case of the workflows used for
        soldier and sniper (helps: steamrt/tasks#200, steamrt/tasks#207)
      * _v2-entry-point: Remove unused verbose() function
      * populate-depot.py: Internal improvements for CI
        (helps: steamrt/tasks#200, steamrt/tasks#206)
      * tests: Use -S option when invoking old versions of Python
      * tests: Internal improvements
  • v0.20230112.0 protected
    44419123 · Release v0.20230112.0 ·
    Release: v0.20230112.0
    steam-runtime-tools v0.20230112.0
      [ Simon McVittie ]
      * scripts: Convert most scripts from bash to the POSIX shell /bin/sh.
        This improves robustness if the bash found in $PATH cannot be run
        in the scout environment, in particular if it was installed via Nix
        and relies on DT_RUNPATH. (steam-runtime#545, steamrt/tasks#209)
      * container-runtime: Remove backwards compatibility with old versions
        of the pressure-vessel/ directory
      * container-runtime: Update documentation to reflect this now being part
        of steam-runtime-tools
      [ Ludovico de Nittis ]
      * system-info: Detect when an expected version definition was missing
        from a library, either having different version definitions or being
        completely unversioned (steamrt/steam-runtime-tools#95)
  • v0.20221215.0 protected
    cfe44727 · Release v0.20221215.0 ·
    Release: v0.20221215.0
    steam-runtime-tools v0.20221215.0
      * CI fixes only
  • v0.20221208.1 protected
    70fd2457 · Release v0.20221208.1 ·
    steam-runtime-tools v0.20221208.1
      * CI: Also make the actual binaries available to debuginfod
  • v0.20221208.0 protected
    e1624826 · Release v0.20221208.0 ·
    steam-runtime-tools v0.20221208.0
      * pressure-vessel: Pass through Gamescope's special Wayland display
      * subprojects: Add a copy of the SteamLinuxRuntime scripts.
        This will help us to coordinate changes between steam-runtime-tools and
      * CI: Refactoring
      * debian: Stop including redundant source code in
        pressure-vessel-relocatable.deb (if source code is required, use the
        steam-runtime-tools.dsc source package)
  • v0.20221130.0 protected
    e8de4b15 · Release v0.20221130.0 ·
    Release: v0.20221130.0
    steam-runtime-tools v0.20221130.0
      * pressure-vessel: Update Flatpak-derived code to 1.14.1
        * Don't bind-mount /efi into containers, same as /boot
        * Slightly better debug info for failures
        * Use a better XML DOCTYPE for fonts.conf
        - The remaining changes are in code that doesn't get compiled into
      * pressure-vessel: Update included copy of bubblewrap to 0.7.0
        - Improve error messages
        - The remaining changes are not relevant to pressure-vessel.
      * pressure-vessel: Make sure we don't use bwrap --perms option if we are
        using a system copy of bwrap that doesn't support it
      * s-r-launch-client: Make --version, --list output to standard output
        as intended, not standard error
      * library: Improve logging/debugging support
        - Ensure the three standard file descriptors always point somewhere,
          even if that's /dev/null
        - Send warnings and error messages to the systemd journal (on systems
          where it exists) if they would otherwise go to /dev/null
        - If output is going to the systemd journal, create our own stream so
          that it is labelled correctly
        - pv-wrap: Log more details about the changes made to the runtime to
          create the container's root filesystem
        - pv-wrap, pv-adverb: with SRT_LOG=journal, redirect warnings and
          errors to the systemd journal (output from the actual game is not
        - pv-wrap: With SRT_LOG=overrides, log the full contents of /overrides
          for comparison and debugging
        - pv-wrap: With SRT_LOG=container, log the full contents of the
          container's root filesystem (as modified from the runtime) for
          comparison and debugging
  • v0.20221115.1 protected
    193dfb1f · Release v0.20221115.1 ·
    Release: v0.20221115.1
    steam-runtime-tools v0.20221115.1
      * tests: Don't assume /dev/shm is a real directory.
        In older chroot environments it's sometimes a symbolic link to /run/shm.
  • v0.20221115.0 protected
    67ffda59 · Release v0.20221115.0 ·
    steam-runtime-tools v0.20221115.0
      [ Ludovico de Nittis ]
      * pv-wrap: Improve path mapping under FEX-Emu or similar emulators
        by distinguishing between paths visible to native code (aarch64)
        and paths visible to emulated code (x86)
      [ Simon McVittie ]
      * pv-exports: Treat /run/gfx the same as /run/host
      * pv-wrap: Add --deterministic option to make consecutive logs easier
        to compare with generic diff tools
      * pv-wrap: Make the debug log shorter and easier to compare by omitting
        redundant path segments
      * pv-runtime: Detect some errors that were previously ignored
      * pv-runtime: Improve robustness against crashing if initialization fails
      * pv-locale-gen:
        - Produce less repetitive output
        - Launch a bit faster
        - Give a better hint about why we want a locale
      * pv-adverb: Let missing locales show on stderr.
        This will give users a hint about how they can speed up container setup.
        (Helps: steam-runtime#541)
      * s-r-input-monitor: Sort hidraw and evdev devices "naturally"
      * library code: Add SRT_LOG=TOKEN[,TOKEN...] option to alter how we log.
        Possible values are subject to change, but currently:
        - debug: enables debug and info messages, implied by --verbose or
        - diffable: reduces differences between logs (show fewer process IDs,
          etc.), implied by pv-wrap --deterministic
        - info: enables info messages, implied by PRESSURE_VESSEL_LOG_INFO=1
        - pid: force process IDs to be logged, even if diffable was used
        - timestamp: prefix log lines with a timestamp, implied by
        - timing: show the time taken for various operations (performance
          profiling), even if not debugging
      * Update libglnx subproject
        - Use its g_memdup2() backport instead of our own
  • v0.20221014.0 protected
    63ea5340 · Release v0.20221014.0 ·
    Release: v0.20221014.0
    steam-runtime-tools v0.20221014.0
      [ Ludovico de Nittis ]
      * pressure-vessel: Add support for FEX-Emu graphics library thunking.
        When emulating x86 on aarch64, FEX-Emu optionally loads thin x86
        graphics driver libraries that make calls into the underlying aarch64
        graphics drivers, instead of implementing the whole user-space part
        of the graphics driver in x86 code that needs to be emulated. To
        make this work as intended, we have to ensure that the search path
        for each of these categories includes both the x86 version from the
        FEX-Emu rootfs and the aarch64 version from the host system:
        - Vulkan drivers and layers
        - EGL drivers and external platforms
        - GLX drivers
        - Mesa DRI drivers
        - VA-API drivers
        Doing this for VDPAU drivers is not currently supported, because VDPAU
        only searches a single directory, not a search path.
      * pv-runtime, pv-graphics-provider: Refactoring to support the above
      * graphics: Refactoring to support the above
      [ Ludovico de Nittis, Simon McVittie ]
      * pv-runtime: Capture libudev.so.0 again, but only if the SONAME matches.
        This means we can pick up Arch Linux's libudev.so.0 shim if available,
        but we won't pick up an incorrect libudev.so.0 -> libudev.so.1 symlink
        like the one in ValveSoftware/steam-runtime#533.
      [ Simon McVittie ]
      * Update libglnx
        - Make cloning a file consistently seek to the end
        - More backports from newer GLib
      * Tests:
        - Add a script to run the tests in a LD_LIBRARY_PATH environment
      * Adjust for rename of default branch name to main
  • v0.20220927.0 protected
    dac5c19b · Release v0.20220927.0 ·
    Release: v0.20220927.0
    steam-runtime-tools v0.20220927.0
      [ Simon McVittie ]
      * pv-runtime: Don't capture libudev.so.0 for now.
        This means we won't use a system copy of libudev0-shim, but avoids
        crashes on systems where libudev.so.0 is incorrectly a symlink to
        libudev.so.1. (steam-runtime-tools#96, ValveSoftware/steam-runtime#533)
      * libcurl-compat: Make it possible for run.sh to activate or deactivate
        the compatibility shim without re-running setup.sh (steamrt/tasks#119)
      * Tests:
        - Improve ability to run tests against the Steam Runtime environment
        - Improve diagnostic output if JSON results differ
      [ Ludovico de Nittis ]
      * Tests:
        - Fix an intermittent unit test failure (steamrt/tasks#162)
  • v0.20220919.0 protected
    f1e8b73a · Release v0.20220919.0 ·
    Release: v0.20220919.0
    steam-runtime-tools v0.20220919.0
      [ Ludovico de Nittis ]
      * pressure-vessel: If using libudev from the host, provide read-only
        access to /run/udev.
        This is sufficient to identify non-hotplugged game controllers in
        games that use libudev directly (older bundled SDL versions, or not
        using SDL at all).
        - Controller hotplug support continues to require using an up-to-date
          version of SDL or Proton.
        - This is not done for older host OSs (Debian 10, Ubuntu 18.04, etc.)
          because on these older OSs we have to use the container's libudev,
          but the host /run/udev is not necessarily compatible with that.
      * tests: Fix test failure with Arch Linux glibc ≥ 2.36-4
      [ Simon McVittie ]
      * pv-runtime: Use host's libudev if equal to or newer than container
        libudev, even if no graphics driver depends on it.
        This makes it more likely that we can parse /run/udev.
      * tests: Fix test failure with latest Steam Runtime 1 'scout' images
  • v0.20220908.0 protected
    57e16afe · Release v0.20220908.0 ·
    Release: v0.20220908.0
    steam-runtime-tools v0.20220908.0
      * libcurl-compat: When building for scout (only), build a shim libcurl
        that can dispatch to runtime or system copies.
        This works around ABI divergence from upstream in the libcurl in
        Debian/Ubuntu between about 2005 and 2018, which unfortunately includes
        the time at which Steam Runtime 1 'scout' started. Additional setup in
        the steam-runtime scripts is necessary to take advantage of this.
      * Documentation updates:
        - compat-tool-interface: Non-Steam launch options can have %command% now
        - launch-client, shared-paths: Remove notes about obsolete versions
        - launch-client: Update release status
        - launch-client: Say where to find it
        - launcher-interface-0: Move example to launch-client
      * Tests:
        - Improve support for using the tests "as-installed" to test a proposed
          Steam Runtime
        - generate-sysroots: Avoid using undefined string escape sequences
        - Generalize TAP test template
      * build-aux: Actually use clang for the build labelled "clang"
      * launch-options: Update for steam-launch-wrapper addition to recent betas
  • v0.20220823.0 protected
    c56cb2ec · Release v0.20220823.0 ·
    Release: v0.20220823.0
    steam-runtime-tools v0.20220823.0
  • v0.20220803.0 protected
    7cb0693d · Release v0.20220803.0 ·
    Release: v0.20220803.0
    steam-runtime-tools v0.20220803.0
      * pressure-vessel: Share more paths with the container by default
        (steamrt/tasks#149, steam-runtime#334, steam-runtime#393,
        steam-runtime#429, steam-runtime#470, Proton#5102,
        - If the user's real home directory is shared with the container,
          also share the typical paths for removable media: /run/media,
          /media, /mnt.
        - If the user's real home directory is shared with the container,
          also share FHS 3.0 top-level directories /home, /opt and /srv.
      * Locally-created top-level directories that don't follow any particular
        specification (for example /storage, /files, /games) continue to not be
        shared by default. They can still be shared by setting the
        STEAM_COMPAT_MOUNTS environment variable.
      * A new document docs/shared-paths.md describes what is and isn't shared.
  • v0.20220802.0 protected
    edc29281 · Release v0.20220802.0 ·
    Release: v0.20220802.0
    steam-runtime-tools v0.20220802.0