Newer
Older
steam-runtime-tools (0.20220311.0) UNRELEASED; urgency=medium
* pressure-vessel: Warn if we have to fall back to copying.
pressure-vessel is designed to use hard-links when preparing the
container runtime, and we rely on them to get fast startup and not waste
disk space. (steam-runtime#495)
* pressure-vessel: Don't copy extended attributes.
This can fail if we're copying from e.g. btrfs to tmpfs.
(steam-runtime#495)
* pressure-vessel: Treat libXNVCtrl as part of graphics stack.
MangoHUD uses this to get performance information for older NVIDIA
hardware via the NV-CONTROL X extension.
This is not technically part of the NVIDIA driver (it's part of the
nvidia-settings open-source module), and there's no guarantee that
NVIDIA users will have it installed at all, but we're probably more
likely to get a version compatible with the user's GPU and drivers if
we prefer to take it from the same place as the actual driver.
(steam-runtime-tools#82)
* pressure-vessel: Update bubblewrap subproject to v0.6.1
* pressure-vessel: Update code taken from Flatpak
- Cope with WAYLAND_DISPLAY being an absolute path
* Update libglnx subproject
- Better compatibility with eCryptFS and maybe ZFS (GNOME/libglnx#3)
- REUSE: Drop .reuse/dep5 stanza for libglnx, no longer needed.
libglnx itself is now REUSE-compliant.
* Documentation updates
- Add documents introducing the LDLP and container Steam Runtimes
- Document some of the assumptions made by the Steam Runtime
- Developer mode is available in releases now
- Add a cross-reference to SDK documentation
-- Simon McVittie <smcv@collabora.com> Fri, 11 Mar 2022 15:37:09 +0000
steam-runtime-tools (0.20220131.0) steamrt; urgency=medium
* pressure-vessel: Handle X11 over local abstract or TCP sockets
(steam-runtime#486)
* pressure-vessel: Allow remapping Xauthority entries for remote or
forwarded X11 (related to steam-runtime#486)
* pressure-vessel: Interpret tcp: addresses for PulseAudio
* pressure-vessel: Update Flatpak-based code to Flatpak 1.12.4
- Support more variations of PulseAudio server strings
* pressure-vessel: Expose systemd journal sockets inside container
* urlopen: Improve error handling
* urlopen: Allow steam.pipe to be tried either before or after x-d-p
* Use steam-runtime-tools log domain for non-pressure-vessel CLI tools
* urlopen, steam-remote: Optionally log to the systemd Journal
-- Simon McVittie <smcv@collabora.com> Mon, 31 Jan 2022 13:00:06 +0000
steam-runtime-tools (0.20220119.0) steamrt; urgency=medium
* graphics: Add support for enumerating EGL external platforms.
These are used by the NVIDIA proprietary driver for integration with
non-X11 display technologies such as Wayland and gbm.
* pressure-vessel: Collect EGL external platforms from graphics stack.
This should allow the NVIDIA proprietary EGL driver to operate on Wayland,
if it is a sufficiently new version.
* graphics: Refactoring
-- Simon McVittie <smcv@collabora.com> Wed, 19 Jan 2022 11:35:32 +0000
steam-runtime-tools (0.20220111.0) steamrt; urgency=medium
* graphics: Load ICDs and layers to match Vulkan-Loader >= 1.2.198
* graphics: Improve Vulkan-Loader reference URLs
* tests: Expand timeout for test-locale-gen.sh.
This can take more than 60s on heavily loaded autobuilders.
-- Simon McVittie <smcv@collabora.com> Tue, 11 Jan 2022 14:02:44 +0000
steam-runtime-tools (0.20220107.0) steamrt; urgency=medium
* pressure-vessel: Make /gnu/store available read-only, if it exists.
This is necessary but not sufficient for Guix support; the rest of
the necessary setup (notably a glibc configured to read /etc/ld.so.cache)
is provided by the FHS-style container that Guix uses to run Steam.
* build: Fix build with Vulkan 1.1 headers, in particular on
Steam Runtime 1½ 'heavy' (steam-runtime-tools!407)
* build: Fix GObject-Introspection build by separating public headers
* Fix some GObject-Introspection warnings
* API documentation fixes
* pv-adverb: Fix regression in generation of required locales
(steam-runtime-tools!408)
-- Simon McVittie <smcv@collabora.com> Fri, 07 Jan 2022 11:58:26 +0000
steam-runtime-tools (0.20211207.0) steamrt; urgency=medium
* build: Include our own copy of wflinfo, depending on libwaffle 1.6.
This was the last remaining third-party executable used for our
diagnostic checks that needed its packaging to be forked to build a
multiarch-qualified version. If we avoid needing that, then we can use
dependencies from an ordinary Linux distribution, making development
outside a Steam Runtime environment easier.
* pressure-vessel: Reduce size of relocatable binary package
* pv-adverb: Improve error-checking
* pv-launch: Use headers from Flatpak 1.12.2 for many constants
* system-info: Improve Vulkan driver version reporting
(steam-runtime-tools#79, steamrt/tasks#45)
- Stop reporting an incorrect version number for Nvidia proprietary
- Use the driverInfo field for the version number if possible,
so we can report specific mesa-git commits if available
- Report the VkDriverID that identifies a specific driver, if known
* tests: Coding style adjustments
* tests: Fix mypy warnings
* pressure-vessel: Refactoring
* check-vulkan: Refactoring
[ Simon McVittie, Ludovico de Nittis ]
* Improve ability to build for non-x86_64 architectures
[ Ludovico de Nittis ]
* d/rules: Remove unused vulkaninfo symlink
* build-relocatable-install: Remove unused ld.so value
-- Simon McVittie <smcv@collabora.com> Tue, 07 Dec 2021 16:15:56 +0000
steam-runtime-tools (0.20211027.0) steamrt; urgency=medium
* pv-runtime: Improve support for locating data associated with host
libraries
- In particular take drirc.d from OS, even if using Mesa in a
non-standard location (Resolves: steam-runtime-tools#77)
* graphics: Improve support for Vulkan layers in a Flatpak environment
* pv-wrap: Add --devel option for "developer mode"
- Mount /sys read/write so developers can access debugfs, event tracing
or similar facilities, if allowed by filesystem permissions on host
- Don't detach from standard input (like --terminal=tty)
- More developer-mode tweaks are likely to be added in future versions
* pv-wrap: Update messages that refer to Flatpak versions
- Users of 1.11.x should upgrade to at least 1.12.1 to fix an unrelated
security issue in Flatpak
* pressure-vessel, system-info: Fix various minor memory leaks
* helpers: Translate check-gl from C++ into C
* library: Move most JSON report parsing to its own translation unit
* check-xdg-portal: Avoid a crash if no interfaces can be found
* pv-runtime: Refactoring
* Build system improvements
* Avoid functions deprecated in GLib 2.70
* Add some game-developer-oriented documentation
(Resolves: steamrt/tasks#6)
* Update libcapsule to 0.20211026.0
- Fix dependency resolution with host glibc <= 2.33 and
container runtime glibc >= 2.34
(libcapsule!49, Resolves: steamrt/tasks#13)
* pv-runtime: Use correct ld.so from graphics stack provider
* graphics: Respect graphics-stack provider sysroot (if not the host)
when loading graphics libraries
* Add proof-of-concept support for non-x86 architectures.
Steam is x86-specific, but the majority of steam-runtime-tools is
architecture-agnostic; make it work on aarch64 (e.g. Raspberry Pi 4)
to get an idea of how much work is required to support each new
architecture.
* graphics: Refactoring
* Build system improvements
* Unit test improvements
-- Simon McVittie <smcv@collabora.com> Wed, 27 Oct 2021 19:36:25 +0100
steam-runtime-tools (0.20210906.2) steamrt; urgency=medium
[ Ludovico de Nittis ]
* Update libcapsule to 0.20210906.0
- Improve forward compatibility with glibc 2.34
-- Simon McVittie <smcv@collabora.com> Mon, 06 Sep 2021 17:43:10 +0100
steam-runtime-tools (0.20210906.1) steamrt; urgency=medium
* debian: Build-Depend on libcap-dev, for bubblewrap
-- Simon McVittie <smcv@collabora.com> Mon, 06 Sep 2021 15:36:04 +0100
steam-runtime-tools (0.20210906.0) steamrt; urgency=medium
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
[ Simon McVittie ]
* pv-wrap: Use $PRESSURE_VESSEL_BWRAP in preference to $BWRAP
* pv-wrap: Use local copy of bwrap in preference to system copy.
The system copy might be older and less featureful, or might be
unnecessarily setuid, so let's try to use a version that is under our
control. If it works, great. If not, we can try a system copy, which
we might have to use anyway (for example on Debian 10, RHEL 7 or
SteamOS 2).
* pv-wrap: Build and use our own copy of bubblewrap 0.5.0.
This is considerably newer than the backport we have in scout, and
includes fixes relevant to pressure-vessel, particularly for users of
case-insensitive filesystems.
(Resolves: steam-runtime-tools#47, steam-runtime#326, T30017)
* pv-wrap: Log an info message if bwrap is setuid.
A setuid-root version of bwrap cannot use all of its features, so this
is useful information.
* graphics: Accept Vulkan layer manifests up to version 1.2.0.
Version 1.2.0 added some new fields, but nothing critical for our
purposes. (Resolves: steam-runtime#457)
[ Ludovico de Nittis ]
* check-va-api: Do not stop if one decoding profile fails.
This improves detection of working VA-API on Intel. (T27513)
* Import host's icons and cursors into the container
(Resolves: steam-runtime#311, T29983)
-- Simon McVittie <smcv@collabora.com> Mon, 06 Sep 2021 14:24:36 +0100
steam-runtime-tools (0.20210820.0) steamrt; urgency=medium
* debian: Split steam-runtime-tools-minimal package.
We don't want to include all of steam-runtime-tools-bin in heavy,
because that drags in json-glib, waffle and other libraries not
historically included in heavy, and we're trying to make heavy as light
as possible (perhaps ironically, given its name and its use to support
a 100M+ browser engine).
* debian: Change misleading suite name in changelog.
We use the same source code across all Steam Runtime branches for this
particular package.
* tests: Update populate-depot.py from SteamLinuxRuntime v0.20210806.0
* tests: Don't make populate-depot.py guess what we mean
* build-aux: Remove redundant COPYING file
* build-aux: Move sysroot convenience scripts to here
-- Simon McVittie <smcv@collabora.com> Fri, 20 Aug 2021 17:48:44 +0100
steam-runtime-tools (0.20210809.1) scout; urgency=medium
* Rebuild with fixed version number and CI pipeline
-- Simon McVittie <smcv@collabora.com> Mon, 09 Aug 2021 17:25:34 +0100
steam-runtime-tools (0.20210809.0) scout; urgency=medium
* pv-runtime: Try to create /sbin/ldconfig.real if using host glibc.
This fixes a regression for Ubuntu and older versions of Debian.
(Resolves: T29764)
* pv-adverb: If we cannot regenerate ld.so.cache, fall back to
pre-0.20210806.0 behaviour
* pv-adverb: Expand error message if we cannot regenerate ld.so cache
-- Simon McVittie <smcv@collabora.com> Mon, 09 Aug 2021 16:43:21 +0100
steam-runtime-tools (0.20210806.0) scout; urgency=medium
[ Ludovico de Nittis, Simon McVittie ]
* pv-runtime: Generate a new /etc/ld.so.cache with our overridden
libraries. This means we can now run games that clear the
LD_LIBRARY_PATH, such as Dead Cells, Evoland Legendary Edition and
Shenzhen I/O. (Resolves: steam-runtime#224, steam-runtime#268, T14481)
* pressure-vessel: Take ldd, etc. from provider if we are using its glibc,
for better compatibility with newer glibc in host OSs like Arch Linux
(Resolves: T29581)
* pressure-vessel: Improve handling of LD_PRELOAD and LD_AUDIT modules.
Modules that are not a literal, absolute filename are now supported
as far as possible. In particular, this handles two common configurations
for MangoHud: the convenience build script and binary builds provided by
upstream, and the layout used in the Debian packaging.
(Resolves: steam-runtime#435, T29490)
* pv-launch: Show more explanatory message if Flatpak is using setuid
bwrap. In particular, this should help users of recent Flatpak
on Gentoo.
* pv-unruntime: Handle LD_PRELOAD with spaces correctly.
Unlike LD_AUDIT, LD_PRELOAD items are separated by either colon or
space delimiters.
* pv-wrap: Generalize SHARED_LIBRARY_GUARD_CONFIG handling to cope with
the case where the variable is already set, or points to a file in
/usr or /lib*
* pressure-vessel: Update flatpak-exports from Flatpak
* pressure-vessel: Refactor handling of LD_PRELOAD and LD_AUDIT modules
* pv-wrap, pv-launcher: Set a reasonable RLIMIT_NOFILE to avoid
problems with select().
(Resolves: T29726; related to steam-for-linux#7970)
[ Ludovico de Nittis ]
* pv-runtime: Delete overridden libraries from the correct "mesa" path
to improve robustness
* pressure-vessel: Remove support for STEAM_COMPAT_FLAGS=search-cwd.
This is now handled by run.sh from the LD_LIBRARY_PATH runtime, with a
fallback implementation in the "Steam Linux Runtime" compat tool
(versions >= 0.20210806.33) until we can get the run.sh change into a
General Availability version of Steam.
-- Simon McVittie <smcv@collabora.com> Fri, 06 Aug 2021 17:51:39 +0100
steam-runtime-tools (0.20210722.0) scout; urgency=medium
[ Ludovico de Nittis ]
* pv-runtime: Share /usr/share/nvidia with container if NVIDIA driver
is used (steam-runtime-tools#73, T29292)
* pressure-vessel: Adjust LD_PRELOAD to reduce misleading ELF warnings
(steam-runtime-tools#33, T28950)
[ Simon McVittie ]
* pv-runtime: Fix startup regression on NixOS (steam-runtime#431)
* pressure-vessel: Remove the concept of "locking" environment variables.
This complexity is no longer necessary with the simplified compat-tool
interface in the current stable version of Steam.
* pv-wrap: Optionally try to run games in a systemd scope
* Add licensing information in REUSE format
* CI/test improvements
-- Simon McVittie <smcv@collabora.com> Thu, 22 Jul 2021 17:39:53 +0100
steam-runtime-tools (0.20210630.0) scout; urgency=medium
[ Ludovico de Nittis ]
* pv-wrap: Make Nvidia Vulkan ray-tracing more likely to work.
Run nvidia-modprobe with the -c=0 option to make sure /dev/nvidia-uvm
gets created.
* steam-runtime-identify-library-abi: New executable to identify the
ABI of shared libraries.
-- Simon McVittie <smcv@collabora.com> Wed, 30 Jun 2021 12:26:40 +0100
steam-runtime-tools (0.20210617.1) scout; urgency=medium
[ Simon McVittie ]
* pressure-vessel: Fix compatibility with Ubuntu 14.04 and other older
non-systemd Debian derivatives
* pressure-vessel: Improve compatibility with other mtree implementations
* tests: Update populate-depot.py from SteamLinuxRuntime v0.20210608.0
* docs: Document the Steam compatibility tool interface.
This is based on testing with Steam beta 1623823138 and older versions,
and is not necessarily authoritative.
[ Ludovico de Nittis ]
* pressure-vessel: Address various build warnings
-- Simon McVittie <smcv@collabora.com> Thu, 17 Jun 2021 19:03:58 +0100
steam-runtime-tools (0.20210608.3) scout; urgency=medium
* Rebuild with adjusted CI settings
-- Simon McVittie <smcv@collabora.com> Tue, 08 Jun 2021 16:43:27 +0100
steam-runtime-tools (0.20210608.0) scout; urgency=medium
* pressure-vessel: Build capsule-capture-libs from a bundled copy of
libcapsule, currently v0.20210114.0.
This reduces the number of components required to get a pressure-vessel
build: now all we need is the multiarch-prefixed wflinfo, and some
common shared libraries. (s-r-t!311)
* system-info: Make STEAM_RUNTIME take precedence over os-release.
If we're running the scout runtime inside a soldier container
(scout_layered_slim beta branch, T18668) then we want to be reporting
facts about the scout runtime.
* system-info: Show /overrides even if in scout runtime.
This is helpful if we're stacking the scout runtime onto the soldier
runtime (T18668): both pinned_libs_* and overrides are relevant there.
* CI: Upload a pressure-vessel binary release for each tag (T28526)
* system-info: Use a more compact output for overrides and pinned
libraries.
Most of the information in `find -ls` output is not particularly
interesting for debugging, so just log the list of files, whether each
one is a directory, and the targets of symlinks. Replace the paths
to the home directory and the LD_LIBRARY_PATH Steam Runtime with
$HOME and $STEAM_RUNTIME respectively, to make things more concise.
(s-r-t!315, Resolves: T28240)
* pv-wrap: Adjust Flatpak libshared-library-guard configuration path
(T27444)
-- Simon McVittie <smcv@collabora.com> Tue, 08 Jun 2021 16:06:58 +0100
steam-runtime-tools (0.20210518.0) scout; urgency=medium
* system-info: List /overrides/ correctly in recent SteamLinuxRuntime.
When pressure-vessel operates in --copy-runtime mode, /overrides is a
symlink to /usr/lib/pressure-vessel/overrides. "find /overrides -ls"
is useless here: it just lists the symlink, rather than traversing the
directory hierarchy.
* pv-wrap: Share Pipewire socket with container if available
* pv-runtime: Refactoring
* resolve-in-sysroot: Correct misleading error messages
* resolve-in-sysroot: Correctly bail out if a non-directory is found
-- Simon McVittie <smcv@collabora.com> Tue, 18 May 2021 11:22:07 +0100
steam-runtime-tools (0.20210430.0) scout; urgency=medium
* pressure-vessel: Performance improvements, especially on systems with
slow I/O performance
- Enumerate host system graphics drivers in parallel with other
required setup
- Speed up startup with cold cache by skipping unnecessary checks
- Speed up --copy-runtime mode by not opening shared libraries
with libelf
* pressure-vessel: Add a new runtime format with unpacked files
accompanied by a mtree(5) manifest. This is more space-efficient than
deploying a tarball, and speeds up setup when running under Flatpak.
1.11.x subsandboxing. (Resolves: T27912)
* pv-wrap: Auto-detect Flatpak 1.11.x (T27612)
* pv-wrap: Suggest an appropriate `flatpak override` command if needed
* pv-wrap: Remove support for escaping from a Flatpak container.
We did this as a very early prototype, but it never fully worked, and
required configuring Flatpak specially to allow Steam to escape from the
sandbox (which obviously undermines Flatpak's intended sandboxing).
* pv-runtime: Fix some misleading log messages and comments
* pressure-vessel: Remove unnecessary bundled copies of vainfo and
vulkaninfo
* tests: Update populate-depot.py from SteamLinuxRuntime.
Adjust invocation as required.
* system-info: Try to detect the expansion of $LIB and $PLATFORM (T27436)
* system-info: Detect Flatpak version (T27635)
* pressure-vessel: Undo SDL_VIDEODRIVER=wayland if running in scout.
The SDL in scout is too old for this to work.
(steam-runtime#232, steam-runtime#396, T27777)
* pressure-vessel: Show a warning if $PLATFORM cannot be detected.
This would break our ability to set up VDPAU drivers.
-- Simon McVittie <smcv@collabora.com> Fri, 30 Apr 2021 16:45:15 +0100
steam-runtime-tools (0.20210415.0) scout; urgency=medium
[ Ludovico de Nittis ]
* pressure-vessel: Show a warning when attempting to bind /usr/* dirs
(Helps: #30)
* pv-runtime: Improve experimental Flatpak sub-sandboxing support
(Fixes: T27437, T27438, T27442, T27443)
* pv-launch: Fix typo in --help
[ Simon McVittie ]
* pv-runtime: Don't set PulseAudio as default if it was not found,
fixing a regression in 0.20210317.0 on systems that use plain ALSA
(Helps: steam-runtime#344, steam-runtime#384)
* pv-runtime: Improve experimental Flatpak sub-sandboxing support
* Update libglnx
* pressure-vessel: Don't try to change file ownership when copying a tree
-- Simon McVittie <smcv@collabora.com> Thu, 15 Apr 2021 20:25:04 +0100
steam-runtime-tools (0.20210331.0) scout; urgency=medium
[ Simon McVittie ]
* Fix handling of libraries with non-ASCII paths
- pressure-vessel: Fix a crash if a Vulkan ICD or layer is in a
directory with a non-ASCII name
- system-info: Show details of libraries in non-ASCII locations
correctly
(Resolves: steam-runtime#385, steam-runtime-tools#69)
* system-info: Force environment variables into UTF-8
[ Ludovico de Nittis ]
* pressure-vessel: Use a tmpfs home directory when unsharing the home
directory and running non-interactively. (Resolves: steam-runtime#66)
* steam-runtime-steam-remote: Add a stub steam executable.
This tries to communicate with the running Steam client and pass
command-line options to it, and is suitable for placing in a container's
PATH as 'steam'. (Helps: T27035)
* steam-runtime-urlopen: Add a more Steam-centric URL-opening helper,
command-line-compatible with xdg-open.
This handles steam: and steamlink: URLs by passing them to the running
Steam client, even if it is not the default handler for those URLs,
and makes it possible to open http and https URLs via Steam if
xdg-desktop-portal is not available. (Helps: T27036)
-- Simon McVittie <smcv@collabora.com> Wed, 31 Mar 2021 16:59:04 +0100
steam-runtime-tools (0.20210317.0) scout; urgency=medium
[ Ludovico de Nittis ]
* pressure-vessel: Create symlinks for non-canonical SONAMES
such as libbz2.so.1
(Resolves: T26816; helps: steam-runtime#246)
* pressure-vessel: Set PulseAudio as the default ALSA driver if available.
(Resolves: steam-runtime-tools#65; helps: steam-runtime#371)
* pv-runtime: Use "/usr/share" as a fallback library data directory,
for better support for e.g. Exherbo (Resolves: steam-runtime-tools#68)
* pv-runtime: Try Exherbo's locale dirs as a fallback
(partially addresses: steam-runtime-tools#67)
* tests: Test ability to unshare the home directory
[ Simon McVittie ]
* pressure-vessel: Fix Proton setup commands in locales that use a
decimal comma, such as de_DE (helps: steam-runtime#381)
* pv-runtime: Avoid a spurious warning on first use
* pv-wrap: Fix a regression in the experimental Flatpak sub-sandboxing
code path with newer SteamLinuxRuntime wrapper scripts
-- Simon McVittie <smcv@collabora.com> Wed, 17 Mar 2021 19:17:08 +0000
steam-runtime-tools (0.20210312.0) scout; urgency=medium
* pressure-vessel: Fix a regression when using a game-specific home
directory. Mount points appeared in the wrong order, resulting in
the game-specific home covering up directories that should have been
shared, such as ~/.steam (Resolves: #63)
* pressure-vessel: Fix a regression when not using any runtime
-- Simon McVittie <smcv@collabora.com> Fri, 12 Mar 2021 19:19:42 +0000
steam-runtime-tools (0.20210305.0) scout; urgency=medium
* pressure-vessel: Fix processing of Vulkan ICDs/layers outside /usr
where the library_path in the JSON manifest is just a SONAME
(Resolves: steam-runtime#366)
* pressure-vessel: Fix regressions when graphics provider is set to empty
* pressure-vessel: Default to using graphics drivers from the current
execution environment, not necessarily the host
(Resolves: steam-runtime#367)
* pressure-vessel: Cope with /var/tmp (or /var) being a symlink
(Resolves: steam-runtime#368)
* pv-wrap: Make PROTON_LOG_DIR available in the container
(Resolves: steam-runtime#369)
* pressure-vessel: Never set XDG_DATA_DIRS to just our override directory.
Default to /usr/local/share:/usr/share as per the specification.
* pressure-vessel: Mask Vulkan layers in home directory or other non-/usr
paths. This avoids the Steam fossilize and overlay layers being
duplicated in the container's search path. (Resolves: T26160)
* pressure-vessel: Accept runtime with or without ./files at top level
* pv-launch: Sync minor improvements from flatpak-xdg-utils
* pv-launch: Use unset-env option for subsandbox API >= v5.
This was added in Flatpak 1.10.0.
* pressure-vessel: Improve diagnostics for various error conditions
* pressure-vessel: Generalize --copy-runtime-into into --variable-dir
* pressure-vessel: Fix locking behaviour in variable directory
* pressure-vessel: Add support for unpacking runtimes from an archive.
This previously had to be done by the SteamLinuxRuntime shell scripts.
* pressure-vessel: Automatically enable --copy-runtime if running
under Flatpak
* pressure-vessel: Make sure Debian-based runtimes will look in
/lib/terminfo, fixing the PRESSURE_VESSEL_SHELL=instead xterm's
behaviour when not running on a Debian derivative
* pressure-vessel: Treat LD_AUDIT the same as LD_PRELOAD, as another step
towards Flatpak support
* pressure-vessel: Put apt-style severity prefixes on messages
* pressure-vessel: Add experimental code path for Flatpak sub-sandboxing.
This requires branches of Flatpak that have not yet been reviewed or
merged, so it isn't expected to work yet. Only pressure-vessel or
Flatpak developers should enable this.
* pressure-vessel: Make /run/bumblebee.socket visible in container.
This is sometimes helpful for Primus/Bumblebee setups, although we
recommend PRIME render offloading (DRI_PRIME=1 for Mesa or
__NV_PRIME_RENDER_OFFLOAD=1 for NVIDIA) as a more reliable way to manage
multiple GPUs. (Helps: steam-runtime#372)
* debian: Make symlinks in RPATH point to libraries by SONAME.
This makes the steam-runtime-system-info in the LD_LIBRARY_PATH
Steam Runtime work more reliably across GLib upgrades.
* pressure-vessel: Respect search-cwd flag in STEAM_COMPAT_FLAGS.
This should fix games like Shadowrun Returns that assume their
installation directory is in the LD_LIBRARY_PATH.
(Resolves: steam-runtime#371, steam-runtime-tools#46)
* pressure-vessel: Run nvidia-modprobe -u before entering the container
if needed, to load nvidia_uvm.ko for Vulkan ray-tracing support
* pressure-vessel: Update flatpak-run to the latest upstream version.
This includes a fix to propagate the X11 cookies that have an address
equal to XAUTHLOCALHOSTNAME, fixing X11 authentication on some openSUSE
systems (Resolves: steam-runtime-tools#53)
* runtime: Bind the drirc settings from the provider
(Resolves: steam-runtime-tools#60)
* pv-adverb: Remove unused locales temporary directories
(Resolves: steam-runtime-tools#56)
* system-info: Report duplicate Vulkan ICDs/layers as an issue.
This helps us to detect misconfigured host systems, and also helps to
detect regressions where we duplicate ICDs/layers in the pressure-vessel
container that were not duplicates on the host. (Resolves: T26156)
* system-info: Add ability to set multiarch tuples to inspect
(Resolves: steam-runtime-tools#58)
* pressure-vessel: Mount systemd-resolved varlink socket if available
(Resolves: steam-runtime-tools#61)
* pressure-vessel: Include Vulkan shaders required by the included
diagnostic tool (Resolves: steam-runtime-tools#62)
* system-info: Parse Vulkan layers from a report in the right order
* tests: Programmatically generate more mock sysroots instead of including
them in the source release (Resolves: T26709)
-- Simon McVittie <smcv@collabora.com> Fri, 05 Mar 2021 11:08:01 +0000
steam-runtime-tools (0.20210203.0) scout; urgency=medium
* pressure-vessel: Revert improvements to speed of container setup.
This optimization caused some Vulkan layers and ICDs to appear more
than once in the container, which makes some games hang.
(Maybe resolves: steam-runtime#361, steam-runtime#362, steam-runtime#363)
* system-info: Log environment variables used by various Vulkan layers
-- Simon McVittie <smcv@collabora.com> Wed, 03 Feb 2021 16:33:56 +0000
steam-runtime-tools (0.20210201.0) scout; urgency=medium
[ Simon McVittie ]
* pressure-vessel: Make graphics stack provider's /etc/amd available
in the container.
This is needed for at least one of the AMD-maintained graphics stacks:
AMDVLK (open-source) and/or AMDGPU-PRO (proprietary).
(Resolves: steam-runtime#313)
* pressure-vessel: Make host's /etc available for reference in
/run/host/etc inside the container (also graphics stack provider's /etc
in /run/gfx/etc, if different)
* pressure-vessel: Make /var/tmp available in the container
* system-info: Show various environment variables that influence
components that we are interested in:
- the Steam client
- SDL
- Wine/Proton
- PulseAudio clients
- ALSA clients
* check-vulkan: Fix compilation on Steam Runtime 1½ 'heavy'.
heavy is still on Vulkan loader v1.1.73, which doesn't know
VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT.
* tests: Fix unit test failure if environment variables like DRI_PRIME
are set
[ Ludovico de Nittis ]
* pressure-vessel: Improve speed of container setup by combining multiple
calls to capsule-capture-libs
* system-info: Show machine-readable info for each Vulkan PhysicalDevice
(each GPU/driver combination, plus software rendering if available).
This should help us to see what is going wrong in multi-GPU scenarios.
(Helps: steam-runtime#312, steam-runtime#341, steam-runtime#352;
maybe also steam-runtime#340)
-- Simon McVittie <smcv@collabora.com> Mon, 01 Feb 2021 19:03:26 +0000
steam-runtime-tools (0.20210126.0) scout; urgency=medium
[ Ludovico de Nittis ]
* pressure-vessel: Fix a crash when environment variables carried over
from the host are not in the expected encoding
- In particular this fixes a crash when a game's installation directory
contains the trademark symbol. (Resolves: #52, steam-runtime#349)
* system-info: Fix a crash in some unlikely error cases
* system-info: Refactoring
* check-vulkan: Avoid a possible crash
* check-vulkan: Convert from C++ to C
* check-vulkan: List all Vulkan GPUs
* check-vulkan: Improve error messages
* system-info: Log more influential environment variables
* system-info: Add support for reading /run/host/container-manager
* system-info: Add support for detecting Podman
* system-info: Print diagnostic messages as arrays of lines
* system-info: Temporarily print details of all GPUs as diagnostic
messages, until we support printing them in a machine-readable way
-- Simon McVittie <smcv@collabora.com> Tue, 26 Jan 2021 13:22:50 +0000
steam-runtime-tools (0.20210114.0) scout; urgency=medium
[ Ludovico de Nittis ]
* pressure-vessel: Fix loading of ICDs and Vulkan layers that are
referenced by a bare SONAME (Resolves: #49)
- In particular this fixes the Mesa device selection layer
* pressure-vessel: Improve handling of LD_PRELOAD
[ Simon McVittie ]
* pressure-vessel: Find PulseAudio socket on systems that do not use
XDG_RUNTIME_DIR (Resolves: #51, steam-runtime#343)
* pressure-vessel: Further refactoring towards being able to run from
inside Flatpak
* pressure-vessel: Create symlinks for various distros' ld.so.cache
equivalents, improving ability to run on Clear Linux and Exherbo
(partially addresses steam-runtime#345, steam-runtime#230)
* pv-wrap: *Really* don't assume container's env is in the PATH,
again for Exherbo (partially addresses steam-runtime#230).
* pressure-vessel: Implement the container indicator from systemd's
CONTAINER_INTERFACE ($container and /run/host/container-manager)
* test-ui: Look for runtimes in PRESSURE_VESSEL_VARIABLE_DIR.
Future versions of SteamLinuxRuntime will use this to move the
non-Steampipe-managed runtimes into a var/ subdirectory.
-- Simon McVittie <smcv@collabora.com> Thu, 14 Jan 2021 14:29:37 +0000
steam-runtime-tools (0.20210105.0) scout; urgency=medium
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
[ Simon McVittie ]
* pv-wrap: Make graphics drivers outside $HOME available, if used
(Resolves: #29, steam-runtime#313)
* pv-wrap: Refactor collection of DRI drivers so we use all the search
paths that SrtGraphics knows about
- Also look for Mesa DRI drivers in ${libdir}/xorg/modules/dri,
used on Slackware (Resolves: steam-runtime#318)
* pv-wrap: Don't assume container's env is in the PATH.
Some OS distributions, notably Exherbo, don't put /usr/bin in their
PATH. This means we can't safely use their PATH to invoke standard tools
inside the container. (Partially addresses steam-runtime#230)
* pv-wrap: Always disable gtk3-nocsd.
This module interposes in front of g_object_get(), and is known to cause
crashes, even in programs that use GObject but not GTK.
(Resolves: steam-runtime#286)
* pv-wrap: Cope with /tmp being a symlink.
If /tmp is a symlink in the current execution environment, then when
we ask bwrap to bind-mount /tmp/pressure-vessel-wrap.XXXXXX/overrides
over itself, it will try to create the parent directory /tmp, and fail
because there's a symlink in the way. Canonicalize the path and use that
instead. Partially addresses steam-runtime#321 (symlinks "above" the home
directory have the same problem, but are harder to fix).
* Improve diagnostic tools bundled with relocatable pressure-vessel:
- Don't wrap steam-runtime-system-info, so it can find its helpers
- Include vulkaninfo and wflinfo in relocatable installs
* pv-wrap: Remove --host-fallback option.
We are not going to be able to do this from within Flatpak, and it is
unsuitable for running runtimes other than Steam Runtime 1 'scout',
for which the LD_LIBRARY_PATH runtime mostly already works.
If we need an automatic fallback to running on the host for scout games,
we can do that better by running `pressure-vessel-wrap --test`.
* pressure-vessel: Speed up execution of short-lived subprocesses.
In particular, if the soft limit on open file descriptors is very large
(formerly recommended for Proton "esync", although the current
recommendation is to set a small soft limit and a large hard limit)
this can speed up pressure-vessel by as much as 90%. In more normal
configurations it can still save 10%. (Resolves: steam-runtime#323)
* pressure-vessel: Stop running bwrap --help, no longer needed.
* pv-wrap: Log pressure-vessel version on startup.
This serves two purposes: it gives us a timestamp for when
pressure-vessel started, and it puts the version number in the log.
* Preparatory work for being able to run inside Flatpak:
- system-info: Look in both /overrides and /usr/lib/p-v/overrides
- pv-wrap: In Flatpak, use pv-launch to run commands on the host
- pv-wrap: Remap $HOME for Flatpak correctly
- pv-wrap: In Flatpak, put game in same userns/pidns as Steam if possible
- pv-launch: Add the ability to unset environment variables when using
Flatpak APIs on the host
- Lots of refactoring in PvRuntime
* THIRD-PARTY.md: Add more licenses for steam-runtime-tools
* THIRD-PARTY.md: Point to git repo for steam-runtime-tools source
* THIRD-PARTY.md: Point to scout images for third-party library source
[ Ludovico de Nittis ]
* system-info: Diagnose STEAM_COMPAT_CLIENT_INSTALL_PATH mismatch
(Resolves: #41)
* runtime: correctly handle ICD for different ABI even without subdirs
(Resolves: #45)
* graphics: Do not load JSON ICDs multiple times from the same directory
(Resolves: #48; partially addresses steam-runtime#336)
* Refactor logging
* Add PRESSURE_VESSEL_LOG_INFO and PRESSURE_VESSEL_LOG_WITH_TIMESTAMP
environment variables
-- Simon McVittie <smcv@collabora.com> Tue, 05 Jan 2021 18:12:58 +0000
steam-runtime-tools (0.20201203.0) scout; urgency=medium
[ Ludovico de Nittis ]
* pressure-vessel: Cope with Vulkan meta-layers and handle them specially,
fixing an assertion failure (Resolves: steam-runtime#306)
* pressure-vessel: Add option to disable the import of Vulkan layers.
Users experiencing problems with Vulkan layers can disable their
inclusion in the container with environment variable
PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS=0. (Resolves: steam-runtime-tools#37)
* pressure-vessel: Do not dlopen layers if it isn't necessary.
This makes it more likely that we can share the same JSON manifest
for all word-sizes, working around some overzealous deduplication
in the Vulkan loader. (Partially addresses: steam-runtime-tools#39)
* diagnostic tools: Try more VA-API code paths, so that the check can pass
on Intel GPUs (Resolves: steam-runtime-tools#24)
[ Simon McVittie ]
* pressure-vessel: Fix VDPAU driver loading when using newer glibc on
post-Haswell CPUs
* pressure-vessel: Improve correctness of PRESSURE_VESSEL_COPY_RUNTIME_INTO
by removing more conflicting libraries
* input-device test: Add more test data
-- Simon McVittie <smcv@collabora.com> Thu, 03 Dec 2020 18:20:30 +0000
steam-runtime-tools (0.20201124.0) scout; urgency=medium
* runtime: Expand libqual into an array of multilib directories.
This is a step towards searching all the necessary places for unusual
distributions like Exherbo (see steam-runtime#230), and gives us
an obvious extension point for adding more multilib directories.
* runtime: Don't issue warnings when unable to delete from runtime copy
* pressure-vessel-unruntime: Don't assume bash is at /bin/bash.
Apparently NixOS puts it somewhere else.
* pressure-vessel: Fix a wrong assertion that prevented running the
container with libraries from the host system instead of a runtime.
Steam never does this, but it's occasionally useful for debugging.
* pressure-vessel: Make /nix available read-only, if it exists.
This is necessary (but not sufficient!) for NixOS support.
* pressure-vessel: Make sure ~/.steam is available in the container,
even if it's a symbolic link (steam-runtime#291)
* pressure-vessel-wrap: Add environment variables to share filesystems
* pressure-vessel: Make STEAM_EXTRA_COMPAT_TOOLS_PATHS available
(partially addresses steam-runtime#302)
* input-device: Add a new API for input device enumeration and monitoring.
This can list and inspect input devices using libudev or directly, and
is potentially a basis for a future input device portal (see
steam-runtime-tools#11).
* system-info: Detect whether the expected runtime linker is present.
On operating systems with unusual path layouts, such as Exherbo and
NixOS, the de facto standard path for the runtime linker is not
necessarily present for all architectures.
(Of course, if the x86_64 runtime linker is not present, we won't
normally be able to run steam-runtime-system-info either, but at least
users of such operating systems can compile it from source code if they
need to provide diagnostics.)
* bin: Add new steam-runtime-input-monitor diagnostic tool
* bin, pressure-vessel: Disable GIO modules differently.
This avoids some misleading warnings (steam-runtime-tools#32).
* bin: Link diagnostic tools to libsteam-runtime-tools statically
* lib: Don't export private _srt_filter_gameoverlayrenderer
* tests: Link utils test to libsteam-runtime-tools statically
* tests: Move some tests for utility code out of pressure-vessel
* utils: Add the ability to find our prefix when statically linked
* build: Fix dependencies on generated headers
* build: Compile using gcc-4.8 on scout
* debian: Allow building with only libcapsule-tools-relocatable installed
* tests: Generate sysroots for each test, instead of per-build
[ Ludovico de Nittis ]
* pressure-vessel: Make the original environment available
* pressure-vessel: Treat LD_LIBRARY_PATH as system libraries.
At this stage we expect to have `LD_LIBRARY_PATH` set to the
`SYSTEM_LD_LIBRARY_PATH` of `steam.sh`.
This means that we should treat the `LD_LIBRARY_PATH` entries as
OS-level search path too.
* pressure-vessel-unruntime: Support PRESSURE_VESSEL_APP_LD_LIBRARY_PATH
* pressure-vessel: Add support for Vulkan layers.
When we use the provider graphics stack we also try to collect the
available Vulkan layers, similarly to what we already do for ICDs.
(T24365, T24347, T24348)
* pressure-vessel: use the new libcapsule "--remap-link-prefix" option.
Using the new "--remap-link-prefix" option we can now avoid breaking
symlinks not available under `/run/host`, such as Vulkan layers or
drivers in the home directory or in /opt. (steam-runtime-tools#29)
* pressure-vessel: Include host's fonts in the newly built container.
Soldier and Scout include a limited set of fonts that doesn't cover all
use cases. For example it is missing the necessary glyphs for Asian
languages. For this change to be effective, the container also needs an
updated steamrt-container-host-compat package.
(steam-runtime#289, T24559)
* system-info: Diagnose implicit and explicit Vulkan layers
* system-info: Add helper to check for xdg-desktop-portal
-- Simon McVittie <smcv@collabora.com> Tue, 24 Nov 2020 19:18:06 +0000
steam-runtime-tools (0.20201022.0) scout; urgency=medium
[ Ludovico de Nittis ]
* wrap: Set all the env vars before building the locking list.
This ensures pressure-vessel picks up the correct DISPLAY and XAUTHORITY
to work in situations where the X11 server does not listen on an
abstract socket, such as recent GNOME in Wayland mode.
(steam-runtime-tools#26, Proton#4270)
* Add support for Arch Linux /etc/locale.gen. (steam-runtime-tools#5)
* system-info: Return the correct value if the assertion fails
-- Simon McVittie <smcv@collabora.com> Thu, 22 Oct 2020 10:09:01 +0100
steam-runtime-tools (0.20201007.0) scout; urgency=medium
[ Ludovico de Nittis ]
* wrap: Do not lock LD_PRELOAD, so that games run in session mode get the
Steam Overlay (steam-runtime-tools#21)
* launch: Close the file descriptors after being forwarded
* CI: Avoid partial upgrades
* Diagnostic tools: include STEAMSCRIPT and STEAMSCRIPT_VERSION.
These provide details of the Steam bootstrapper script. (T22352)
[ Simon McVittie ]
* launch: Add support for communicating with Flatpak services
* adverb: Don't "pile up" errors if we cannot exec generate-locales
* adverb, launch, launcher: Store original environment
* flatpak-run: Make this more similar to Flatpak's version
* tests: Allow more time for test-locale-gen.sh
-- Simon McVittie <smcv@collabora.com> Wed, 07 Oct 2020 16:25:00 +0100
steam-runtime-tools (0.20201002.0) scout; urgency=medium
[ Ludovico de Nittis ]
* Reapply "runtime: Set STEAM_RUNTIME=/ if running in scout".
This will reassure some games, particularly those ported by Feral
Interactive, that they are running in the right environment.
Last time we tried this, it broke GTK in scout, but since then we have
fixed the custom search path patches in various libraries to cope.
(Resolves: pressure-vessel#8; maybe also: steam-runtime#202,
steam-runtime#249)
* wrap, launcher: Add an environment variable locking system.
If we want to pass all the possible variables that a user might have set
in the environment, then we need a mechanism to lock the variables that
pressure-vessel is editing (e.g. LIBGL_DRIVERS_PATH), variables that we
want to keep unset because will be wrong in the new container (e.g.
FLATPAK_ID) and variables that should inherit their value from the host
system (e.g. DISPLAY).
(Part of steam-runtime-tools#17)
* wrap: Save original environ before potentially altering it
* launcher: add support for unsetting environment variables
* json-glib-compat.h: Use the correct cleanup function for JsonArray
* fake-home.c: Do not shadow the possible global declaration of dirname
[ Simon McVittie ]
* launcher: Always set PWD to the command's actual working directory,
ignoring "locked" variables
* build: Link libglnx into steam-runtime-tools library.
This changes the effective license of the library from MIT/X11 to LGPL,
and will let us make more use of libglnx in future to make the library
more reliable.
- graphics, tests: Start to use g_autofree
* libsrt: Explicitly control symbol visibility
* libsrt: Move non-public utility functions to internal header
* libsrt: Start moving pressure-vessel utilities into the library
* flatpak-bwrap: Update from Flatpak 1.8.2
gcc 10 correctly diagnoses that if there are 0 bytes of arguments, we'll
allocate no bytes, leaving no space for this (unnecessary) '\0'.
* graphics: Fix a minor memory leak
* graphics: Canonicalize relative filenames before prepending sysroot
* graphics: Fix shadowing
* system-info: Open sysroot as a file descriptor
* system-info: Resolve container flag-files via sysroot
* system-info: Always pass around a non-NULL environment block
* README: Add more information about pressure-vessel
* tests: Parse and re-serialize expected JSON output.
This avoids test failure when using json-glib 1.6.x, which pretty-prints
empty arrays and empty objects differently.
* tests: Consolidate test-helper libraries
-- Simon McVittie <smcv@collabora.com> Fri, 02 Oct 2020 13:53:34 +0100
steam-runtime-tools (0.20200914.0) scout; urgency=medium
* Combine steam-runtime-tools with pressure-vessel (T22909)
[ Ludovico de Nittis ]
* steam: Do not report an issue if the Flatpak version of Steam is the
default URI handler
* wrap: Propagate even unchanged environment variables if running
in Flatpak
-- Simon McVittie <smcv@collabora.com> Mon, 14 Sep 2020 17:17:04 +0100
pressure-vessel (0.20200909.0) scout; urgency=medium
* Revert "runtime: Set STEAM_RUNTIME=/ if running in scout".
Setting STEAM_RUNTIME=/ causes configuration changes in libraries like
Pango and GTK, which break module loading when not in the
LD_LIBRARY_PATH Steam Runtime. We will need to update those libraries'
search paths before we can do this.
(Reopens: pressure-vessel#8, steam-runtime#202, steam-runtime#249)
-- Simon McVittie <smcv@collabora.com> Wed, 09 Sep 2020 18:51:19 +0100
[ Ludovico de Nittis ]
* Initial support for escaping from a Flatpak app to run games.
Due to Flatpak limitations, this prototype only works when the Flatpak
sandbox security has been completely disabled. Future development in both
Flatpak and pressure-vessel will be required to be able to launch games
in individual containers while keeping a security boundary between Steam
and the host system. (Resolves: T22373, T22371)
[ Simon McVittie ]
* runtime: Carry out the /usr merge when copying sysroots
(Resolves: pressure-vessel#3, T22126)
* wrap: Don't populate environment of FlatpakBwrap that will be merged
(Resolves: T23422)
* wrap: Use FlatpakExports to make host paths available in container.
This gives us access to the same tricks that Flatpak uses to get host
paths into the container in a more robust way: in particular, it sorts
paths to put parent before child, and exports symbolic links as symbolic
links plus a separate mount point for the target (which we previously
did for the subdirectories of ~/.steam, but nowhere else).
(Resolves: pressure-vessel#2, pressure-vessel#18; part of T22908)
* various commands: Print exit status immediately before exiting
* various commands: Include process ID in output.
When we have more than one layer of adverbs, this provides a way to
tell which one we are.
* wrap, adverb: Move "wrap with xterm" code into the adverb.
This means the launching scripts for the "session" mode, which use
pv-launch to run the main game command in a previously-set-up pv-launcher
environment, can direct pv-adverb to run an interactive shell instead of
or in addition to the actual game.
(Part of steamlinuxruntime#2)
* wrap: Always mount /tmp from host for now.