steam-runtime-tools tagshttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags2024-03-21T17:49:01Zhttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240321.0v0.20240321.0steam-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<ul data-sourcepos="1:3-60:37" dir="auto">
<li data-sourcepos="1:3-5:25">
<code data-sourcepos="1:6-1:30">steam-runtime-system-info</code>:
<ul data-sourcepos="2:5-5:25">
<li data-sourcepos="2:5-3:58">Do the same functional tests on <code data-sourcepos="2:40-2:44">bwrap</code> that were previously only
done in <code data-sourcepos="3:16-3:37">s-r-check-requirements</code> (steamrt/tasks#406)</li>
<li data-sourcepos="4:5-5:25">Do a functional test on flatpak-portal subsandboxes
(steamrt/tasks#406)</li>
</ul>
</li>
<li data-sourcepos="6:3-11:117">
<code data-sourcepos="6:6-6:37">steam-runtime-check-requirements</code>:
<ul data-sourcepos="7:5-11:117">
<li data-sourcepos="7:5-8:25">Emit more specific messages for several common <code data-sourcepos="7:55-7:59">bwrap</code> problems
(steamrt/tasks#406)</li>
<li data-sourcepos="9:5-9:64">Detect several common Flatpak problems (steamrt/tasks#406)</li>
<li data-sourcepos="10:5-11:117">Unset <code data-sourcepos="10:14-10:23">LD_PRELOAD</code> etc. before running <code data-sourcepos="10:47-10:55">srt-bwrap</code>, matching what we will
actually do in pressure-vessel (<a data-sourcepos="11:39-11:116" href="https://github.com/ValveSoftware/steam-runtime/issues/658" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#658</a>)</li>
</ul>
</li>
<li data-sourcepos="12:3-13:25">
<code data-sourcepos="12:6-12:32">steam-runtime-launch-client</code>:
<ul data-sourcepos="13:5-13:25">
<li data-sourcepos="13:5-13:25">Document <code data-sourcepos="13:17-13:24">--env-fd</code>
</li>
</ul>
</li>
<li data-sourcepos="14:3-17:45">
<code data-sourcepos="14:6-14:15">srt-logger</code>:
<ul data-sourcepos="15:5-17:45">
<li data-sourcepos="15:5-17:45">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)</li>
</ul>
</li>
<li data-sourcepos="18:3-19:68">
<code data-sourcepos="18:6-18:25">steam-runtime-dialog</code>:
<ul data-sourcepos="19:5-19:68">
<li data-sourcepos="19:5-19:68">New tool, a wrapper for <code data-sourcepos="19:32-19:37">zenity</code>-style UIs (steamrt/tasks#376)</li>
</ul>
</li>
<li data-sourcepos="20:3-21:76">
<code data-sourcepos="20:6-20:28">steam-runtime-dialog-ui</code>:
<ul data-sourcepos="21:5-21:76">
<li data-sourcepos="21:5-21:76">New tool, a fallback UI for <code data-sourcepos="21:36-21:55">steam-runtime-dialog</code> (steamrt/tasks#376)</li>
</ul>
</li>
<li data-sourcepos="22:3-23:79">
<code data-sourcepos="22:6-22:33">steam-runtime-launch-options</code>:
<ul data-sourcepos="23:5-23:79">
<li data-sourcepos="23:5-23:79">Use <code data-sourcepos="23:12-23:37">~/.steam/root/steam-dialog</code>, if available, in preference to <code data-sourcepos="23:73-23:78">zenity</code>
</li>
</ul>
</li>
<li data-sourcepos="24:3-53:17">pressure-vessel:
<ul data-sourcepos="25:5-53:17">
<li data-sourcepos="25:5-28:72">Treat <code data-sourcepos="25:14-25:19">$BWRAP</code> as less-preferred than <code data-sourcepos="25:46-25:54">srt-bwrap</code>. The order we try is now:
<code data-sourcepos="26:8-26:29">$PRESSURE_VESSEL_BWRAP</code> > <code data-sourcepos="26:35-26:43">srt-bwrap</code> > <code data-sourcepos="26:49-26:54">$BWRAP</code> > system <code data-sourcepos="26:67-26:71">bwrap</code>
instead of the previous:
<code data-sourcepos="28:8-28:29">$PRESSURE_VESSEL_BWRAP</code> > <code data-sourcepos="28:35-28:40">$BWRAP</code> > <code data-sourcepos="28:46-28:54">srt-bwrap</code> > system <code data-sourcepos="28:67-28:71">bwrap</code>
</li>
<li data-sourcepos="29:5-38:68">Add a <code data-sourcepos="29:14-29:40">PRESSURE_VESSEL_WORKAROUNDS</code> environment variable.
This is a space- or comma-separated list of
workarounds to enable (<code data-sourcepos="31:31-31:34">+foo</code>) or disable (<code data-sourcepos="31:51-31:54">-foo</code>).
Currently workarounds <code data-sourcepos="32:30-32:43">steam-snap#356</code>, <code data-sourcepos="32:48-32:61">steam-snap#369</code> and
<code data-sourcepos="33:8-33:21">steam-snap#370</code> 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 <code data-sourcepos="36:58-36:71">bwrap-no-perms</code>
and <code data-sourcepos="37:12-37:23">bwrap-setuid</code>, which are used automatically if they appear to be
needed, but can be explicitly enabled or disabled for testing.</li>
<li data-sourcepos="39:5-40:86">Fix a regression when using a setuid system copy of bubblewrap
(<a data-sourcepos="40:8-40:85" href="https://github.com/ValveSoftware/steam-runtime/issues/650" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#650</a>)</li>
<li data-sourcepos="41:5-45:69">Make library dependencies in <code data-sourcepos="41:37-41:57">/var/lib/snapd/hostfs</code> available,
fixing missing <code data-sourcepos="42:23-42:39">/usr/share/nvidia</code> (<a data-sourcepos="42:43-42:120" href="https://github.com/ValveSoftware/steam-runtime/issues/586" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#586</a>).
This cannot yet be done by default because it is not allowed by the
AppArmor profile (<a data-sourcepos="44:25-44:109" href="https://github.com/canonical/steam-snap/issues/359" rel="nofollow noreferrer noopener" target="_blank">canonical/steam-snap/issues/359</a>), so it is only done
if <code data-sourcepos="45:11-45:25">-steam-snap#359</code> appears in <code data-sourcepos="45:40-45:67">$PRESSURE_VESSEL_WORKAROUNDS</code>.</li>
<li data-sourcepos="46:5-50:69">Make library dependencies in <code data-sourcepos="46:37-46:41">/snap</code> available, fixing missing
<code data-sourcepos="47:8-47:24">/usr/share/libdrm</code> (<a data-sourcepos="47:28-47:105" href="https://github.com/ValveSoftware/steam-runtime/issues/586" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#586</a>).
This cannot yet be done by default because it is not allowed by the
AppArmor profile (<a data-sourcepos="49:25-49:109" href="https://github.com/canonical/steam-snap/issues/359" rel="nofollow noreferrer noopener" target="_blank">canonical/steam-snap/issues/359</a>), so it is only done
if <code data-sourcepos="50:11-50:25">-steam-snap#359</code> appears in <code data-sourcepos="50:40-50:67">$PRESSURE_VESSEL_WORKAROUNDS</code>.</li>
<li data-sourcepos="51:5-51:79">Under Flatpak, use <code data-sourcepos="51:27-51:34">--env-fd</code> to shorten <code data-sourcepos="51:49-51:65">s-r-launch-client</code> command line</li>
<li data-sourcepos="52:5-52:49">Remove dead code for non-subsandbox Flatpak</li>
<li data-sourcepos="53:5-53:17">Refactoring</li>
</ul>
</li>
<li data-sourcepos="54:3-58:58">
<code data-sourcepos="54:6-54:32">SteamLinuxRuntime_sniper.sh</code>:
<ul data-sourcepos="55:5-58:58">
<li data-sourcepos="55:5-57:72">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.</li>
<li data-sourcepos="58:5-58:58">Use <code data-sourcepos="58:12-58:37">~/.steam/root/steam-dialog</code> for UI if available</li>
</ul>
</li>
<li data-sourcepos="59:3-59:15">Refactoring</li>
<li data-sourcepos="60:3-60:37">tests: Improve unit test coverage</li>
</ul>2024-03-21T17:49:01ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240306.0v0.20240306.0steam-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)<ul data-sourcepos="1:3-9:0" dir="auto">
<li data-sourcepos="1:3-2:52">steam-runtime-check-requirements:
<ul data-sourcepos="2:5-2:52">
<li data-sourcepos="2:5-2:52">Adjust wording of messages (steamrt/tasks#406)</li>
</ul>
</li>
<li data-sourcepos="3:3-9:0">pressure-vessel:
<ul data-sourcepos="4:5-9:0">
<li data-sourcepos="4:5-5:63">Update libcapsule to a version that works around smaller-than-default
stack limits by using heap allocation (steam-runtime#653)</li>
<li data-sourcepos="6:5-9:0">Work around more AppArmor profile issues in snapd
(steamrt/tasks#408, canonical/steam-snap#369, canonical/steam-snap#370)</li>
</ul>
</li>
</ul>
<h3 data-sourcepos="10:1-10:15" dir="auto">
<a id="user-content-tag-message" class="anchor" href="#tag-message" aria-hidden="true"></a>Tag message</h3>
<p data-sourcepos="12:1-12:33" dir="auto">steam-runtime-tools v0.20240306.0</p>
<ul data-sourcepos="14:3-20:77" dir="auto">
<li data-sourcepos="14:3-15:52">steam-runtime-check-requirements:
<ul data-sourcepos="15:5-15:52">
<li data-sourcepos="15:5-15:52">Adjust wording of messages (steamrt/tasks#406)</li>
</ul>
</li>
<li data-sourcepos="16:3-20:77">pressure-vessel:
<ul data-sourcepos="17:5-20:77">
<li data-sourcepos="17:5-18:63">Update libcapsule to a version that works around smaller-than-default
stack limits by using heap allocation (steam-runtime#653)</li>
<li data-sourcepos="19:5-20:77">Work around more AppArmor profile issues in snapd
(steamrt/tasks#408, canonical/steam-snap#369, canonical/steam-snap#370)</li>
</ul>
</li>
</ul>2024-03-08T20:31:12ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240301.0v0.20240301.0steam-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<p data-sourcepos="1:1-1:33" dir="auto">steam-runtime-tools v0.20240301.0</p>
<ul data-sourcepos="3:3-69:25" dir="auto">
<li data-sourcepos="3:3-12:72">steam-runtime-check-requirements:
<ul data-sourcepos="4:5-12:72">
<li data-sourcepos="4:5-11:24">Diagnose some common situations that will break steamwebhelper
now that it runs under a sniper container (steamrt/tasks#406)
<ul data-sourcepos="6:7-11:24">
<li data-sourcepos="6:7-9:36">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</li>
<li data-sourcepos="10:7-11:24">Check whether ~/.steam/root is below /usr, reporting an error
message if it is</li>
</ul>
</li>
<li data-sourcepos="12:5-12:72">Add repeatable -v option to show more info, similar to flatpak -vv</li>
</ul>
</li>
<li data-sourcepos="13:3-16:16">steam-runtime-system-info:
<ul data-sourcepos="14:5-16:16">
<li data-sourcepos="14:5-16:16">Add a diagnostic flag for running Steam from below /usr (just for
completeness, since Steam will no longer launch successfully in this
situation)</li>
</ul>
</li>
<li data-sourcepos="17:3-43:48">pressure-vessel:
<ul data-sourcepos="18:5-43:48">
<li data-sourcepos="18:5-28:28">Work around several important paths being symlinks to a non-shared
filesystem by automatically sharing their symlink targets:
<ul data-sourcepos="20:7-28:28">
<li data-sourcepos="20:7-21:467">~/.config/cef_user_data, fixing a steamwebhelper crash
(steamrt/tasks#411, <a data-sourcepos="21:29-21:114" href="https://github.com/ValveSoftware/steam-for-linux/issues/10547" rel="nofollow noreferrer noopener" target="_blank">steam-for-linux#10547</a>, <a data-sourcepos="21:117-21:202" href="https://github.com/ValveSoftware/steam-for-linux/issues/10548" rel="nofollow noreferrer noopener" target="_blank">steam-for-linux#10548</a>, <a data-sourcepos="21:205-21:290" href="https://github.com/ValveSoftware/steam-for-linux/issues/10552" rel="nofollow noreferrer noopener" target="_blank">steam-for-linux#10552</a>, <a data-sourcepos="21:293-21:378" href="https://github.com/ValveSoftware/steam-for-linux/issues/10558" rel="nofollow noreferrer noopener" target="_blank">steam-for-linux#10558</a>, <a data-sourcepos="21:381-21:466" href="https://github.com/ValveSoftware/steam-for-linux/issues/10560" rel="nofollow noreferrer noopener" target="_blank">steam-for-linux#10560</a>)</li>
<li data-sourcepos="22:7-22:33">~/.cache, $XDG_CACHE_HOME</li>
<li data-sourcepos="23:7-23:35">~/.config, $XDG_CONFIG_HOME</li>
<li data-sourcepos="24:7-24:38">~/.local/share, $XDG_DATA_HOME</li>
<li data-sourcepos="25:7-25:39">~/.local/state, $XDG_STATE_HOME</li>
<li data-sourcepos="26:7-26:24">$XDG_CONFIG_DIRS</li>
<li data-sourcepos="27:7-27:22">$XDG_DATA_DIRS</li>
<li data-sourcepos="28:7-28:28">~/.local/share/Steam</li>
</ul>
</li>
<li data-sourcepos="29:5-30:71">Unset STEAM_ZENITY on entry, and reset it to a path accessible inside
the container runtime before running the game (steamrt/tasks#397)</li>
<li data-sourcepos="31:5-32:54">If the Steam Deck's system tracing developer option is enabled,
mount /sys/kernel/tracing rw (steamrt/tasks#404)</li>
<li data-sourcepos="33:5-34:32">Change pv-adverb exit status to 126 (was 127) if the executable was
found but could not be run</li>
<li data-sourcepos="35:5-36:25">Change pv-adverb exit status to 255 (was 69) if we somehow lose track
of the main process</li>
<li data-sourcepos="37:5-38:57">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)</li>
<li data-sourcepos="39:5-39:37">Improve pv-adverb test coverage</li>
<li data-sourcepos="40:5-42:62">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)</li>
<li data-sourcepos="43:5-43:48">Adjust for rename of pv-bwrap to srt-bwrap</li>
</ul>
</li>
<li data-sourcepos="44:3-45:59">Steam Linux Runtime 1.0 (scout):
<ul data-sourcepos="45:5-45:59">
<li data-sourcepos="45:5-45:59">Remove workaround for a mid 2021 configuration change</li>
</ul>
</li>
<li data-sourcepos="46:3-50:25">steam-runtime-launcher-service --alongside-steam:
<ul data-sourcepos="47:5-50:25">
<li data-sourcepos="47:5-50:25">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)</li>
</ul>
</li>
<li data-sourcepos="51:3-56:44">steam-runtime-launch-options:
<ul data-sourcepos="52:5-56:44">
<li data-sourcepos="52:5-52:57">If GUI dependencies are missing, log that to stderr</li>
<li data-sourcepos="53:5-54:25">Don't use zenity if STEAM_ZENITY is explicitly set empty
(steamrt/tasks#397)</li>
<li data-sourcepos="55:5-56:44">Don't re-enter the scout runtime to run system zenity
(steamrt/tasks#396, steamrt/tasks#397)</li>
</ul>
</li>
<li data-sourcepos="57:3-68:36">Library code / tree-wide changes:
<ul data-sourcepos="58:5-68:36">
<li data-sourcepos="58:5-60:69">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</li>
<li data-sourcepos="61:5-61:71">Move some code from pressure-vessel to be shareable between tools</li>
<li data-sourcepos="62:5-63:27">Avoid using Flatpak-derived code outside pressure-vessel,
to simplify the build</li>
<li data-sourcepos="64:5-64:34">Update libglnx to 2024-02-09</li>
<li data-sourcepos="65:5-66:32">Use libglnx's backport of g_fdwalk_set_cloexec() everywhere, for
better async-signal-safety</li>
<li data-sourcepos="67:5-67:73">Factor out basic libc-based utility functions into a static library</li>
<li data-sourcepos="68:5-68:36">Better automated test coverage</li>
</ul>
</li>
<li data-sourcepos="69:3-69:25">Documentation updates</li>
</ul>2024-03-04T14:37:36ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240212.0v0.20240212.0steam-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<ul data-sourcepos="1:3-28:25" dir="auto">
<li data-sourcepos="1:3-17:74">pressure-vessel:
<ul data-sourcepos="2:5-17:74">
<li data-sourcepos="2:5-4:86">Look for internal Nvidia helper libraries by their canonical names,
which will be helpful after <a data-sourcepos="3:35-3:112" href="https://github.com/canonical/steam-snap/issues/361" rel="nofollow noreferrer noopener" target="_blank">canonical/steam-snap#361</a> is fixed
(<a data-sourcepos="4:8-4:85" href="https://github.com/ValveSoftware/steam-runtime/issues/586" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#586</a>)</li>
<li data-sourcepos="5:5-14:73">Drop code paths that we have not used in production since mid 2021:
<ul data-sourcepos="6:7-14:73">
<li data-sourcepos="6:7-6:65">Remove support for providing the runtime as a tar archive</li>
<li data-sourcepos="7:7-13:47">Remove obsolete command line options:
<ul data-sourcepos="8:9-13:47">
<li data-sourcepos="8:9-8:39">pv-wrap --runtime-archive=...</li>
<li data-sourcepos="9:9-9:34">pv-wrap --runtime-id=...</li>
<li data-sourcepos="10:9-10:47">populate-depot.py --include-sdk-debug</li>
<li data-sourcepos="11:9-11:49">populate-depot.py --include-sdk-runtime</li>
<li data-sourcepos="12:9-12:41">populate-depot.py --no-minimize</li>
<li data-sourcepos="13:9-13:47">populate-depot.py --no-unpack-runtime</li>
</ul>
</li>
<li data-sourcepos="14:7-14:73">Stop checking for and deleting pre-2021 unpack/deploy directories</li>
</ul>
</li>
<li data-sourcepos="15:5-15:27">Improve test coverage</li>
<li data-sourcepos="16:5-16:17">Refactoring</li>
<li data-sourcepos="17:5-17:74">CI: Simplify path to relocatable amd64+i386 build of pressure-vessel</li>
</ul>
</li>
<li data-sourcepos="18:3-20:64">Steam Linux Runtime 1.0 (scout):
<ul data-sourcepos="19:5-20:64">
<li data-sourcepos="19:5-20:64">Stop generating and uploading steam-container-runtime.tar.gz,
superseded by SteamLinuxRuntime.tar.xz (steamrt/tasks#388)</li>
</ul>
</li>
<li data-sourcepos="21:3-23:60">Diagnostic tools:
<ul data-sourcepos="22:5-23:60">
<li data-sourcepos="22:5-22:75">Report some more VR-related environment variables (steam-runtime#575)</li>
<li data-sourcepos="23:5-23:60">check-vulkan: Update list of known errors for v1.3.275</li>
</ul>
</li>
<li data-sourcepos="24:3-25:46">s-r-launch-options:
<ul data-sourcepos="25:5-25:46">
<li data-sourcepos="25:5-25:46">Label medic and steamrt5 runtimes nicely</li>
</ul>
</li>
<li data-sourcepos="26:3-27:17">Library code:
<ul data-sourcepos="27:5-27:17">
<li data-sourcepos="27:5-27:17">Refactoring</li>
</ul>
</li>
<li data-sourcepos="28:3-28:25">Documentation updates</li>
</ul>2024-02-12T11:53:56ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240126.0v0.20240126.0steam-runtime-tools v0.20240126.0
* SteamLinuxRuntime_sniper.sh: Tolerate CRLF line endings in VERSIONS.txt
(steamrt/tasks#375)<ul data-sourcepos="1:3-2:23" dir="auto">
<li data-sourcepos="1:3-2:23">SteamLinuxRuntime_sniper.sh: Tolerate CRLF line endings in VERSIONS.txt
(steamrt/tasks#375)</li>
</ul>2024-01-29T18:22:57ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240125.0v0.20240125.0steam-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)<ul data-sourcepos="1:3-3:123" dir="auto">
<li data-sourcepos="1:3-3:123">pressure-vessel:
<ul data-sourcepos="2:5-3:123">
<li data-sourcepos="2:5-3:123">When running in Flatpak, forward inherited fds to subsandbox
(<a data-sourcepos="3:8-3:85" href="https://github.com/ValveSoftware/steam-runtime/issues/644" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#644</a>, fixing a regression in 0.20240103.0)</li>
</ul>
</li>
</ul>2024-01-29T18:22:17ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240124.1v0.20240124.1steam-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)<ul data-sourcepos="1:3-9:25" dir="auto">
<li data-sourcepos="1:3-6:166">pressure-vessel:
<ul data-sourcepos="2:5-6:166">
<li data-sourcepos="2:5-6:166">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.
(<a data-sourcepos="6:8-6:85" href="https://github.com/canonical/steam-snap/issues/356" rel="nofollow noreferrer noopener" target="_blank">canonical/steam-snap#356</a>, <a data-sourcepos="6:88-6:165" href="https://github.com/ValveSoftware/steam-runtime/issues/640" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#640</a>)</li>
</ul>
</li>
<li data-sourcepos="7:3-9:25">SteamLinuxRuntime_sniper, etc.:
<ul data-sourcepos="8:5-9:25">
<li data-sourcepos="8:5-9:25">Fix relative path from steampipe metadata to top-level regular files
(steamrt/tasks#375)</li>
</ul>
</li>
</ul>2024-01-24T18:20:03ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240124.0v0.20240124.0steam-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)Simon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240123.2v0.20240123.2steam-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)<ul data-sourcepos="1:3-8:42" dir="auto">
<li data-sourcepos="1:3-2:42">upload-artifacts: Really upload SteamLinuxRuntime.tar.xz
(steamrt/tasks#375, steamrt/tasks#376)</li>
<li data-sourcepos="3:3-8:42">SteamLinuxRuntime_sniper.sh, etc.:
<ul data-sourcepos="4:5-8:42">
<li data-sourcepos="4:5-4:64">Avoid corrupting machine-readable output on stdout, if any</li>
<li data-sourcepos="5:5-5:59">If no COMMAND, just print an entry point to use later</li>
<li data-sourcepos="6:5-6:53">Allow using a name not matching tarball content</li>
<li data-sourcepos="7:5-8:42">Accept .version.txt as an alternative to .VERSIONS.txt
(steamrt/tasks#375, steamrt/tasks#385)</li>
</ul>
</li>
</ul>2024-01-23T21:20:05ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240123.1v0.20240123.1steam-runtime-tools v0.20240123.1
* upload-artifacts: Really upload SteamLinuxRuntime.tar.xz
(steamrt/tasks#375, steamrt/tasks#376)Simon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240123.0v0.20240123.0steam-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)<ul data-sourcepos="1:4-4:45" dir="auto">
<li data-sourcepos="1:4-4:45">
<code data-sourcepos="1:7-1:30">SteamLinuxRuntime_sniper</code>, etc.:
<ul data-sourcepos="2:6-4:45">
<li data-sourcepos="2:6-2:57">Optionally generate Steampipe upload configuration</li>
<li data-sourcepos="3:6-4:45">Optionally generate an archive, and a script to unpack and launch it
(steamrt/tasks#375, steamrt/tasks#376)</li>
</ul>
</li>
</ul>2024-01-23T14:50:03ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240119.0v0.20240119.0steam-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<ul data-sourcepos="1:3-6:63" dir="auto">
<li data-sourcepos="1:3-3:61">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)</li>
<li data-sourcepos="4:3-4:25">Documentation updates</li>
<li data-sourcepos="5:3-5:46">Add missing newline to some error messages</li>
<li data-sourcepos="6:3-6:63">pv-adverb: Describe target of each redirection if debugging</li>
</ul>2024-01-19T18:21:16ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20240103.0v0.20240103.0steam-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)<ul data-sourcepos="1:3-7:61" dir="auto">
<li data-sourcepos="1:3-7:61">pv-wrap: Don't register stdout, stderr, --pass-fd with FlatpakBwrap.
This fixes two separate issues:
<ul data-sourcepos="3:5-7:61">
<li data-sourcepos="3:5-4:56">if stdout/stderr were directed to a log file, pv-adverb output would
start again at byte 0, overwriting pv-wrap output;</li>
<li data-sourcepos="5:5-7:61">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)</li>
</ul>
</li>
</ul>2024-01-19T18:20:28ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20231208.0v0.20231208.0steam-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<ul data-sourcepos="1:3-12:76" dir="auto">
<li data-sourcepos="1:3-8:71">pressure-vessel:
<ul data-sourcepos="2:5-8:71">
<li data-sourcepos="2:5-3:128">Try to load NSS plugins without relying on ld.so.cache, fixing
their discovery on heavily customized OSs (<a data-sourcepos="3:50-3:127" href="https://github.com/ValveSoftware/steam-runtime/issues/632" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#632</a>)</li>
<li data-sourcepos="4:5-5:12">Look up graphics libraries by their concrete SONAMEs, for the same
reason</li>
<li data-sourcepos="6:5-8:71">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.</li>
</ul>
</li>
<li data-sourcepos="9:3-12:76">Steam Linux Runtime depots:
<ul data-sourcepos="10:5-12:76">
<li data-sourcepos="10:5-11:25">Remove all DRI plugins from future SLR branches, saving around 100M
(steamrt/tasks#364)</li>
<li data-sourcepos="12:5-12:76">When running pv-verify, allow SteamLinuxRuntime_whatever/.ref to exist</li>
</ul>
</li>
</ul>2023-12-08T12:32:17ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20231128.0v0.20231128.0steam-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)<ul data-sourcepos="1:3-53:60" dir="auto">
<li data-sourcepos="1:3-20:17">pressure-vessel:
<ul data-sourcepos="2:5-20:17">
<li data-sourcepos="2:5-2:54">Log a warning if we can't set up <code data-sourcepos="2:41-2:53">/etc/timezone</code>
</li>
<li data-sourcepos="3:5-4:119">If emitting debug messages, include the full contents of the new
<code data-sourcepos="4:8-4:18">ld.so.cache</code> (steamrt/tasks#357, <a data-sourcepos="4:41-4:118" href="https://github.com/ValveSoftware/steam-runtime/issues/630" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#630</a>)</li>
<li data-sourcepos="5:5-7:21">Make <code data-sourcepos="5:13-5:25">SRT_LOG=debug</code> activate extra output.
Previously, only <code data-sourcepos="6:25-6:33">--verbose</code> or <code data-sourcepos="6:40-6:62">PRESSURE_VESSEL_VERBOSE</code> would have
activated this.</li>
<li data-sourcepos="8:5-16:69">Better compatibility with very old CPUs, especially when using VDPAU,
if the host OS has a supported expansion of <code data-sourcepos="9:52-9:57">${LIB}</code>
<ul data-sourcepos="10:7-16:69">
<li data-sourcepos="10:7-10:59">Affected Intel CPUs are older than "Haswell" (2013)</li>
<li data-sourcepos="11:7-11:59">Affected AMD CPUs are older than "Excavator" (2015)</li>
<li data-sourcepos="12:7-16:69">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 <code data-sourcepos="14:61-14:66">${LIB}</code> 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.</li>
</ul>
</li>
<li data-sourcepos="17:5-18:25">Better compatibility with FEX-Emu, especially when using VDPAU
(steamrt/tasks#349)</li>
<li data-sourcepos="19:5-19:202">
<code data-sourcepos="19:8-19:16">pv-verify</code>: New tool to verify a directory against a <a data-sourcepos="19:61-19:193" href="https://man.freebsd.org/cgi/man.cgi?query=mtree&apropos=0&sektion=5&manpath=FreeBSD+14.0-RELEASE&arch=default&format=html" rel="nofollow noreferrer noopener" target="_blank">mtree(5)</a> manifest</li>
<li data-sourcepos="20:5-20:17">Refactoring</li>
</ul>
</li>
<li data-sourcepos="21:3-27:55">Diagnostic tools:
<ul data-sourcepos="22:5-27:55">
<li data-sourcepos="22:5-23:62">Improve performance of <code data-sourcepos="22:31-22:55">steam-runtime-system-info</code>, especially when
running under FEX-Emu emulation (<a href="/steamrt/steam-runtime-tools/-/issues/88" data-reference-type="issue" data-original="steam-runtime-tools#88" data-link="false" data-link-reference="false" data-project="347" data-issue="1347" data-project-path="steamrt/steam-runtime-tools" data-iid="88" data-issue-type="issue" data-container="body" data-placement="top" title="Stop using timeout(1)" class="gfm gfm-issue">#88</a>)</li>
<li data-sourcepos="24:5-26:30">Stop relying on ability to run <code data-sourcepos="24:39-24:48">timeout(1)</code>, which might improve
compatibility with some sandboxed or limited environments
(<a href="/steamrt/steam-runtime-tools/-/issues/88" data-reference-type="issue" data-original="steam-runtime-tools#88" data-link="false" data-link-reference="false" data-project="347" data-issue="1347" data-project-path="steamrt/steam-runtime-tools" data-iid="88" data-issue-type="issue" data-container="body" data-placement="top" title="Stop using timeout(1)" class="gfm gfm-issue">#88</a>)</li>
<li data-sourcepos="27:5-27:55">Resync <code data-sourcepos="27:15-27:21">wflinfo</code> implementation with waffle 1.8.0</li>
</ul>
</li>
<li data-sourcepos="28:3-43:9">Steam Linux Runtime depots:
<ul data-sourcepos="29:5-43:9">
<li data-sourcepos="29:5-30:180">In <code data-sourcepos="29:11-29:26">usr-mtree.txt.gz</code>, only put permissions in <code data-sourcepos="29:55-29:59">mode=</code>, not all of <code data-sourcepos="29:75-29:81">st_mode</code>,
matching <a data-sourcepos="30:16-30:98" href="https://man.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1&format=html" rel="nofollow noreferrer noopener" target="_blank">bsdtar(1)</a> and <a data-sourcepos="30:104-30:180" href="https://manpages.debian.org/bookworm/mtree-netbsd/mtree.8.en.html" rel="nofollow noreferrer noopener" target="_blank">mtree(8)</a>
</li>
<li data-sourcepos="31:5-31:72">In <code data-sourcepos="31:11-31:26">usr-mtree.txt.gz</code>, truncate fractional seconds to <code data-sourcepos="31:62-31:63">.0</code> if zero</li>
<li data-sourcepos="32:5-43:9">Add a top-level <a data-sourcepos="32:23-32:155" href="https://man.freebsd.org/cgi/man.cgi?query=mtree&apropos=0&sektion=5&manpath=FreeBSD+14.0-RELEASE&arch=default&format=html" rel="nofollow noreferrer noopener" target="_blank">mtree(5)</a> 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:
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="36:7-38:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">/path/to/SteamLinuxRuntime_soldier/pressure-vessel/bin/pv-verify</span></code></pre>
<copy-code></copy-code>
</div>
In SLR 1.0 (scout) the equivalent is:
<div class="gl-relative markdown-code-block js-markdown-code">
<pre data-sourcepos="40:7-43:9" class="code highlight js-syntax-highlight language-plaintext" lang="plaintext" v-pre="true"><code><span id="LC1" class="line" lang="plaintext">/path/to/SteamLinuxRuntime_soldier/pressure-vessel/bin/pv-verify \</span>
<span id="LC2" class="line" lang="plaintext"> path/to/SteamLinuxRuntime</span></code></pre>
<copy-code></copy-code>
</div>
</li>
</ul>
</li>
<li data-sourcepos="44:3-46:72">Library code:
<ul data-sourcepos="45:5-46:72">
<li data-sourcepos="45:5-45:42">Refactor helper subprocess launching</li>
<li data-sourcepos="46:5-46:72">Make execution environment for helper subprocesses more consistent</li>
</ul>
</li>
<li data-sourcepos="47:3-53:60">Tests:
<ul data-sourcepos="48:5-53:60">
<li data-sourcepos="48:5-48:55">Make the <code data-sourcepos="48:17-48:25">pv-adverb</code> test coverage more realistic</li>
<li data-sourcepos="49:5-49:68">When using <code data-sourcepos="49:19-49:26">valgrind</code>, don't show reachable objects by default</li>
<li data-sourcepos="50:5-51:60">Fix a minor memory leak in <code data-sourcepos="50:35-50:50">check-xdg-portal</code> (not significant during
production use since this is not a long-lived process)</li>
<li data-sourcepos="52:5-53:60">Stop diagnosing memory leaks in <code data-sourcepos="52:40-52:46">wflinfo</code> (not significant during
production use since this is not a long-lived process)</li>
</ul>
</li>
</ul>2023-11-28T19:21:02ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20231107.1v0.20231107.1steam-runtime-tools v0.20231107.1
* Fix internal version information<p data-sourcepos="1:1-1:155" dir="auto">Fix internal version information, otherwise equivalent to <a data-sourcepos="1:59-1:155" href="https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/releases/v0.20231107.0">0.20231107.0</a></p>2023-11-07T14:10:23ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20231107.0v0.20231107.0steam-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<ul data-sourcepos="2:3-39:27" dir="auto">
<li data-sourcepos="2:3-3:23">All CLI tools: Consistently unblock and unignore signals during startup
(steamrt/tasks#354)</li>
<li data-sourcepos="4:3-10:95">system-info:
<ul data-sourcepos="5:5-10:95">
<li data-sourcepos="5:5-5:45">Document JSON format for virtualization</li>
<li data-sourcepos="6:5-6:46">Add an option to skip checking libraries</li>
<li data-sourcepos="7:5-7:48">Add an option to skip graphics smoke-tests</li>
<li data-sourcepos="8:5-8:59">Use the common log handler, so <code data-sourcepos="8:39-8:45">SRT_LOG</code> takes effect</li>
<li data-sourcepos="9:5-10:95">
<code data-sourcepos="9:8-9:42">steam-runtime-system-info --verbose</code> now outputs all fields from
<a data-sourcepos="10:7-10:95" href="https://www.freedesktop.org/software/systemd/man/latest/os-release.html#" rel="nofollow noreferrer noopener" target="_blank">os-release(5)</a>
</li>
</ul>
</li>
<li data-sourcepos="11:3-11:32">pressure-vessel: Refactoring</li>
<li data-sourcepos="12:3-13:22">urlopen: Use <code data-sourcepos="12:19-12:42">steam://openurl_external</code> to open <code data-sourcepos="12:54-12:58">http:</code>, <code data-sourcepos="12:63-12:68">https:</code> URLs
(steamrt/tasks#80)</li>
<li data-sourcepos="14:3-35:17">Library code:
<ul data-sourcepos="15:5-35:17">
<li data-sourcepos="15:5-21:20">
<code data-sourcepos="15:8-15:20">SrtSystemInfo</code>: Avoid using fd-relative I/O for the real root, making
several diagnostics more accurate when running under FEX-Emu:
<ul data-sourcepos="17:7-21:20">
<li data-sourcepos="17:7-17:57">DRI, VA-API and VDPAU modules (steamrt/tasks#347)</li>
<li data-sourcepos="18:7-18:21">Vulkan layers</li>
<li data-sourcepos="19:7-19:41">os-release(5) (steamrt/tasks#342)</li>
<li data-sourcepos="20:7-20:90">
<a data-sourcepos="20:9-20:70" href="https://man7.org/linux/man-pages/man8/ld.so.8.html" rel="nofollow noreferrer noopener" target="_blank">ld.so(8)</a> (steamrt/tasks#348)</li>
<li data-sourcepos="21:7-21:20"><code data-sourcepos="21:10-21:19">/overrides</code></li>
</ul>
</li>
<li data-sourcepos="22:5-23:63">
<code data-sourcepos="22:8-22:20">SrtSystemInfo</code>: Make more use of fd-relative I/O when acting on a
sysroot, avoiding being misled by absolute symbolic links</li>
<li data-sourcepos="24:5-24:73">
<code data-sourcepos="24:8-24:20">SrtSystemInfo</code>: Break reference cycles in <code data-sourcepos="24:51-24:59">dispose()</code> if necessary</li>
<li data-sourcepos="25:5-26:17">
<code data-sourcepos="25:8-25:20">SrtSystemInfo</code>: Fix assertion failure if failing to get container
information</li>
<li data-sourcepos="27:5-27:76">
<code data-sourcepos="27:8-27:20">SrtSystemInfo</code>: Keep better track of whether opening a sysroot failed</li>
<li data-sourcepos="28:5-28:75">
<code data-sourcepos="28:8-28:28">SrtVirtualizationInfo</code>: Add missing getter for host-machine property</li>
<li data-sourcepos="29:5-30:13">
<code data-sourcepos="29:8-29:28">SrtVirtualizationInfo</code>: Add os-release(5) from the host system under
FEX-Emu</li>
<li data-sourcepos="31:5-32:61">Collect os-release(5) path, canonicalized path, and any diagnostic
messages about errors parsing it, not just its contents</li>
<li data-sourcepos="33:5-33:27">Improve test coverage</li>
<li data-sourcepos="34:5-34:39">Improve build robustness in scout</li>
<li data-sourcepos="35:5-35:17">Refactoring</li>
</ul>
</li>
<li data-sourcepos="36:3-39:27">Tests:
<ul data-sourcepos="37:5-39:27">
<li data-sourcepos="37:5-37:57">Move non-pressure-vessel-specific tests to <code data-sourcepos="37:51-37:56">tests/</code>
</li>
<li data-sourcepos="38:5-38:59">Fix test failure with a custom value for <code data-sourcepos="38:49-38:58">LC_ADDRESS</code>
</li>
<li data-sourcepos="39:5-39:27">Remove unused imports</li>
</ul>
</li>
</ul>2023-11-07T12:23:32ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20231013.1v0.20231013.1steam-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)<ul data-sourcepos="1:3-3:125" dir="auto">
<li data-sourcepos="1:3-3:125">launcher-service: Unblock and unignore all signals during startup,
fixing detection of subprocesses exiting when launched by Steam
(steamrt/tasks#354, <a data-sourcepos="3:25-3:124" href="https://github.com/ValveSoftware/SteamVR-for-Linux/issues/618" rel="nofollow noreferrer noopener" target="_blank">ValveSoftware/SteamVR-for-Linux#618</a>)</li>
</ul>2023-10-24T18:56:22ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20231013.0v0.20231013.0steam-runtime-tools v0.20231013.0
* pressure-vessel:
- Add more entries to the list of NVIDIA driver libraries,
notably libnvidia-gpucomp. Thanks to Daniel Dadap (steamrt/tasks#340)
- pv-runtime: Duplicate symlinks in /etc, /var into the FEX-Emu
interpreter root, fixing incorrect /etc/os-release under FEX-Emu
(steamrt/tasks#342)
- pv-adverb: Reduce environment variables, etc. to debug level.
This reduces noise when redirecting to the systemd Journal.
- pv-runtime: Use a closer match for 99-pulseaudio-default.conf
when the host system uses PulseAudio.
Thanks to Nozomi Miyamori (steam-runtime#623)
- pv-runtime: Show warnings if unable to load drivers/layers
(steam-runtime-tools#108)
* Reduce profiling messages to debug level unless SRT_LOG=timing.
This reduces noise when redirecting to the systemd Journal.
* build:
- Quote clang, clang++ commands correctly
- Fix generation of timestamp for scout-on-soldier at merge commits
- debian: Work around Debian#1053836
* tests: Silence valgrind false-positives for one-per-process allocations<ul data-sourcepos="1:3-20:75" dir="auto">
<li data-sourcepos="1:3-13:31">pressure-vessel:
<ul data-sourcepos="2:5-13:31">
<li data-sourcepos="2:5-3:75">Add more entries to the list of NVIDIA driver libraries,
notably libnvidia-gpucomp. Thanks to Daniel Dadap (steamrt/tasks#340)</li>
<li data-sourcepos="4:5-6:25">pv-runtime: Duplicate symlinks in /etc, /var into the FEX-Emu
interpreter root, fixing incorrect /etc/os-release under FEX-Emu
(steamrt/tasks#342)</li>
<li data-sourcepos="7:5-8:65">pv-adverb: Reduce environment variables, etc. to debug level.
This reduces noise when redirecting to the systemd Journal.</li>
<li data-sourcepos="9:5-11:112">pv-runtime: Use a closer match for 99-pulseaudio-default.conf
when the host system uses PulseAudio.
Thanks to Nozomi Miyamori (<a data-sourcepos="11:34-11:111" href="https://github.com/ValveSoftware/steam-runtime/issues/623" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#623</a>)</li>
<li data-sourcepos="12:5-13:31">pv-runtime: Show warnings if unable to load drivers/layers
(<a href="/steamrt/steam-runtime-tools/-/issues/108" data-reference-type="issue" data-original="steam-runtime-tools#108" data-link="false" data-link-reference="false" data-project="347" data-issue="2927" data-project-path="steamrt/steam-runtime-tools" data-iid="108" data-issue-type="issue" data-container="body" data-placement="top" title="should warn when ICDs are explicitly specified but don't exist" class="gfm gfm-issue">#108</a>)</li>
</ul>
</li>
<li data-sourcepos="14:3-15:63">Reduce profiling messages to debug level unless SRT_LOG=timing.
This reduces noise when redirecting to the systemd Journal.</li>
<li data-sourcepos="16:3-19:40">build:
<ul data-sourcepos="17:5-19:40">
<li data-sourcepos="17:5-17:45">Quote clang, clang++ commands correctly</li>
<li data-sourcepos="18:5-18:71">Fix generation of timestamp for scout-on-soldier at merge commits</li>
<li data-sourcepos="19:5-19:40">debian: Work around Debian#1053836</li>
</ul>
</li>
<li data-sourcepos="20:3-20:75">tests: Silence valgrind false-positives for one-per-process allocations</li>
</ul>2023-10-13T17:09:30ZSimon McVittiehttps://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tags/v0.20230928.1v0.20230928.1steam-runtime-tools v0.20230928.1
* Hotfix for versions >= 0.20230919.0
* pv-runtime: Deduplicate Vulkan drivers, etc. by their manifest content.
When using Flatpak with the Nvidia drivers, we see two identical
sets of manifests: they are intended to describe the x86_64 and i386
drivers, but each one is equally valid to load the other, resulting in
the same driver being loaded twice.
Some games like Red Dead Redemption 2 and The Elder Scrolls Online
have been reported to crash when this happens.
Until 0.20230919.0, this was accidentally mitigated by
steam-runtime-tools#124, but fixing that bug exposed the crashes.
Avoid this by not making JSON manifests available in the container if
they are a byte-for-byte duplicate of a manifest we already processed.
(Regression in 0.20230919.0; steam-runtime#624)
* tests: Stop assuming libcrypt will be pulled into a scout container.
(Regression in 0.20230928.0)<ul data-sourcepos="2:3-16:32" dir="auto">
<li data-sourcepos="2:3-2:39">Hotfix for versions >= 0.20230919.0</li>
<li data-sourcepos="3:3-14:112">pv-runtime: Deduplicate Vulkan drivers, etc. by their manifest content.
When using Flatpak with the Nvidia drivers, we see two identical
sets of manifests: they are intended to describe the x86_64 and i386
drivers, but each one is equally valid to load the other, resulting in
the same driver being loaded twice.
Some games like Red Dead Redemption 2 and The Elder Scrolls Online
have been reported to crash when this happens.
Until 0.20230919.0, this was accidentally mitigated by
<a href="/steamrt/steam-runtime-tools/-/issues/124" data-reference-type="issue" data-original="steam-runtime-tools#124" data-link="false" data-link-reference="false" data-project="347" data-issue="3035" data-project-path="steamrt/steam-runtime-tools" data-iid="124" data-issue-type="issue" data-container="body" data-placement="top" title="Broken symlinks in /usr/lib/pressure-vessel/overrides/share/ with freedesktop.org runtime 23.08" class="gfm gfm-issue">#124</a>, but fixing that bug exposed the crashes.
Avoid this by not making JSON manifests available in the container if
they are a byte-for-byte duplicate of a manifest we already processed.
(Regression in 0.20230919.0; <a data-sourcepos="14:34-14:111" href="https://github.com/ValveSoftware/steam-runtime/issues/624" rel="nofollow noreferrer noopener" target="_blank">steam-runtime#624</a>)</li>
<li data-sourcepos="15:3-16:32">tests: Stop assuming libcrypt will be pulled into a scout container.
(Regression in 0.20230928.0)</li>
</ul>2023-10-05T18:45:04ZSimon McVittie