-
v0.20230314.0 protected 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 (steam-runtime#572) [ Simon McVittie, Miguel Casique Meneses ] * Tests/CI adjustments (steamrt/tasks#248)
-
v0.20230227.0 protected 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 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 Release: v0.20230216.0
steam-runtime-tools v0.20230216.0 * check-vulkan: Add new error codes from Vulkan-Loader v1.3.239 (steamrt/tasks#228) * 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 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 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 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.20221208.1 protected
steam-runtime-tools v0.20221208.1 * CI: Also make the actual binaries available to debuginfod
-
v0.20221208.0 protected
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 SteamLinuxRuntime. * 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 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. * 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 redirected) - 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 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
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 PRESSURE_VESSEL_VERBOSE=1 - 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 PRESSURE_VESSEL_LOG_WITH_TIMESTAMP=1 - 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 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 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 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. (steamrt/tasks#171) * 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. (steamrt/tasks#171) * tests: Fix test failure with latest Steam Runtime 1 'scout' images
-
v0.20220908.0 protected 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. (steamrt/tasks#119) * 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.20220803.0 protected 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, steam-runtime-tools#18) - 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.