-
v0.20240415.0 protected 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 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 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 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 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 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 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
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 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
steam-runtime-tools v0.20240123.1 * upload-artifacts: Really upload SteamLinuxRuntime.tar.xz (steamrt/tasks#375, steamrt/tasks#376)
-
v0.20240123.0 protected 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 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 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 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 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 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 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)