steam-runtime-tools (0.20260213.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel:
    - Add more tools to relocatable bundle (steamrt/tasks#669)
      + s-r-check-requirements
      + s-r-steam-remote
      + srt-logger and logger-0.bash
  * Steam Linux Runtime 1.0:
    - Allow building against a local scout LD_LIBRARY_PATH tarball.
      This will let each scout release build a SteamLinuxRuntime.tar.xz
      with an included copy of that same scout release, decoupling the
      copy of scout used for SLR 1.0 from the copy of scout used to run
      the Steam client and the Legacy Runtime 1.0 (steamrt/tasks#663)
    - Improve test coverage (steamrt/tasks#663)
    - Drop test coverage for the strict/non-layered SLR 1.0, as used
      before June 2021 (steamrt/tasks#824)
    - Refactoring (steamrt/tasks#891, steamrt/tasks#845)

  [ Antonio Ospite ]
  * Diagnostic tools:
    - Detect GBM backends, such as `dri_gbm.so` (steamrt/tasks#900)
    - Refactoring (steamrt/tasks#900)
    - Documentation improvements (steamrt/tasks#900)
  * Tests:
    - Add a safety-catch against wrong parameter to generate-sysroots.py

 -- Simon McVittie <smcv@collabora.com>  Fri, 13 Feb 2026 18:11:30 +0000

steam-runtime-tools (0.20260115.0) steamrt; urgency=medium

  * Diagnostic tools:
    - s-r-check-requirements: Bail out with an error if elevated privileges
      are detected.
      In general Steam is not designed to be setuid, setgid or setcap,
      and it will either not work as expected or not enforce the security
      boundary if run with elevated privileges. (steam-runtime#787)
    - srt-logger: Similarly produce a "clean" error here: steam.sh starts
      srt-logger before s-r-check-requirements, so an error message is
      better diagnosis than a crash.

 -- Simon McVittie <smcv@collabora.com>  Thu, 15 Jan 2026 16:20:33 +0000

steam-runtime-tools (0.20260106.0) steamrt; urgency=medium

  * pressure-vessel:
    - Add infrastructure for architecture-specific ld.so.conf
    - Provide Exherbo's architecture-specific ld.so.conf filenames
      (steam-runtime#791)
  * Documentation:
    - Document ld.so.conf requirements (steam-runtime#791)
  * Tests:
    - Fix CI regression with newer Vulkan-Headers (steam-runtime-tools!905)

 -- Simon McVittie <smcv@collabora.com>  Tue, 06 Jan 2026 16:36:54 +0000

steam-runtime-tools (0.20251210.0) steamrt; urgency=medium

  * pressure-vessel:
    - CPU emulators can now configure `server_argv` in their
      `emulator.json`, allowing a long-running process like FEXServer
      to amortize startup time across multiple emulator instances
      (steamrt/tasks#833, steamrt/tasks#870)
    - Make sure to display the error message for all possible errors
      in main()
  * Tests:
    - Improve some assertions

 -- Simon McVittie <smcv@collabora.com>  Wed, 10 Dec 2025 13:33:15 +0000

steam-runtime-tools (0.20251201.0) steamrt; urgency=medium

  * pressure-vessel:
    - Fix CPU emulation when steam-runtime-launcher-interface-0
      is of the native architecture
      (steamrt/tasks#868)
    - Fix CPU emulation when combined with
      STEAM_COMPAT_LAUNCHER_SERVICE=container-runtime,
      PRESSURE_VESSEL_SHELL=instead and similar debugging features
      (steamrt/tasks#868)
    - Improve container startup time when using CPU emulation
      (steamrt/tasks#851, steamrt/tasks#865, steamrt/tasks#868)
    - Graphics providers specified as a JSON manifest can tell
      pressure-vessel their own fallback library search path
      (steamrt/tasks#866)
    - Fix a minor memory leak with --shell or --terminal
      (steamrt/tasks#868)
    - Implement the equivalent of s-r-launcher-interface-0 internally,
      saving a subprocess (steamrt/tasks#868)
    - pv-adverb no longer provides --shell or --terminal options:
      equivalent functionality has moved back into pv-wrap
      (steamrt/tasks#868)
    - Build an experimental pressure-vessel-arm64+amd64+i386.tar.gz suitable
      for use with CPU emulation (steamrt/tasks#845)
  * Subprojects:
    - Update libcapsule to 0.20251201.0
      + Search /usr/lib/i386-linux-gnu, /usr/lib64, etc. for libraries
        if not found in /etc/ld.so.cache
        (steamrt/tasks#866, steam-runtime#704)
  * Packaging:
    - Ensure packages from this source are upgraded in lockstep
  * build-aux:
    - Build s-r-launcher-service, etc. for scout i386.
      Developers with an existing build tree will need to re-run
      `build-aux/many-builds.py setup` after this change.
      (steamrt/tasks#868)
  * Tests:
    - Improve pv-wrap test coverage
    - Do a CI build against steamrt4
    - Do the aarch64 relocatable build against steamrt3c in preference to
      Debian 11
    - CI updates
  * Documentation updates

 -- Simon McVittie <smcv@collabora.com>  Mon, 01 Dec 2025 20:20:15 +0000

steam-runtime-tools (0.20251120.0) steamrt; urgency=medium

  * pressure-vessel:
    - Accept STEAM_COMPAT_EMULATOR (which is intended to be set by Steam
      when appropriate) as equivalent to PRESSURE_VESSEL_EMULATOR
      (which is reserved for development and debugging)
      (steamrt/tasks#844)
    - Graphics stacks can be specified with a JSON manifest, in either
      STEAM_COMPAT_GRAPHICS_PROVIDER (intended to be set by Steam when
      appropriate) or PRESSURE_VESSEL_GRAPHICS_PROVIDER (reserved for
      development and debugging).
      The JSON manifest lists the architectures supported by the graphics
      provider, and the root filesystem will be used for any remaining
      architectures. Additional fields are likely to be added to the JSON
      manifest in future pressure-vessel releases to reduce startup delays
      during emulation.
      (steamrt/tasks#846, steamrt/tasks#851)
    - Import libsystemd.so.0 into the container if available.
      We use this if logging to the systemd Journal has been enabled.
      (steamrt/tasks#853)
    - pv-wrap: Don't cache the libdl ${PLATFORM}, no longer used
      (steamrt/tasks#851)
  * Library code:
    - Correctly forget cached libdl info if the execution environment is
      reconfigured (steamrt/tasks#851)
    - Refactoring (steamrt/tasks#846)
  * Documentation updates for steamrt4 release (steamrt/tasks#854)

 -- Simon McVittie <smcv@collabora.com>  Thu, 20 Nov 2025 19:53:38 +0000

steam-runtime-tools (0.20251117.0) steamrt; urgency=medium

  * SteamLinuxRuntime_*:
    - Write PRESSURE_VESSEL_ARCHITECTURES into ./run, so that
      pressure-vessel automatically knows the architecture of the runtime
      (steamrt/tasks#847)
    - Silence a warning with newer mypy
  * pressure-vessel:
    - If the root filesystem doesn't have glibc for a desired architecture,
      but a non-root-filesystem graphics provider does, use the graphics
      provider's ld.so(8) and libraries to run capsule-capture-libs and
      similar helper subprocesses.
      This assumes that the graphics provider follows one of the common
      filesystem layouts (in practice either Debian multiarch, Red Hat/FHS
      multilib or Arch multilib).
      (steamrt/tasks#809, steamrt/tasks#828)
    - emulator.json files can set/unset environment variables, either for
      all emulated processes or only inside the container
      (steamrt/tasks#831)
    - emulator.json files can have different configurations when running
      setup commands outside the SLR container, setup commands inside the
      SLR container, or the main command (app, game or Proton) inside the
      SLR container
      (steamrt/tasks#839)
    - Use more automatic resource management
    - Refactoring
  * Diagnostic tools:
    - Avoid unneeded dependencies on json-glib in tools that don't
      parse JSON, like steam-runtime-check-requirements
    - When testing a sysroot, use the sysroot's ld.so(8) and libraries
      to run functional tests, or skip them if they cannot usefully
      be run in this way.
      As with the similar pressure-vessel change, this will only work
      if the sysroot follows one of the common filesystem layouts.
      (steamrt/tasks#828)
    - Introduce a new error code for "no information available"
      when checking locales
  * s-r-launch-options:
    - Automatically detect if a future version of Proton requires
      steamrt4 (or steamrt5, for future-proofing)
  * Library code:
    - Use more automatic resource management
    - Refactoring (steamrt/tasks#828, steamrt/tasks#831)
  * Documentation updates

 -- Simon McVittie <smcv@collabora.com>  Mon, 17 Nov 2025 18:48:17 +0000

steam-runtime-tools (0.20251103.0) steamrt; urgency=medium

  * pressure-vessel:
    - Fix a small memory leak in pv-adverb while setting up VDPAU drivers
      (steam-runtime-tools!862, steamrt/tasks#786)
    - Only enumerate OpenXR runtimes that belong to the appropriate
      architecture's graphics provider
      (steamrt/tasks#785, steamrt/tasks#786)
    - Change how we handle per-architecture modules for LD_PRELOAD,
      LD_AUDIT, VDPAU drivers, SDL_DYNAMIC_API and SDL3_DYNAMIC_API,
      enabling it to scale to more than two architectures at a time
      (steamrt/tasks#786)
    - Add experimental option (currently only available as an environment
      variable) to set the architectures used, and which one is treated as
      primary (steamrt/tasks#786)
      + Automatically set up pressure-vessel's own architecture to be
        available in the container, even if the runtime doesn't have it
        (steamrt/tasks#787)
    - Add experimental option (currently only available as an environment
      variable) to run foreign-architecture binaries under a non-transparent
      emulator such as FEX without requiring binfmt_misc (steamrt/tasks#787)
      + Automatically set up its architecture and required libraries to be
        available in the container, even if the runtime doesn't have it
        (steamrt/tasks#787)
    - Only look for Ubuntu's /sbin/ldconfig.real in the same graphics
      stack provider as /sbin/ldconfig (steamrt/tasks#821)
    - Stop hard-coding an array of supported architectures.
      Instead, we have a hard-coded array of default architectures,
      in practice the same list as before, but any architecture for which
      steam-runtime-tools was successfully compiled can in principle
      be used to run a runtime for any other architecture.
      (steamrt/tasks#786)
    - Detect the actual architecture of pv-adverb, and use that
      information when starting it (steamrt/tasks#821)
    - Detect the actual architecture of /sbin/ldconfig, and use that
      information to decide which libraries will appear in /etc/ld.so.cache
      and which libraries need to remain in $LD_LIBRARY_PATH
      (steamrt/tasks#821)
    - Use more automatic resource management
    - Refactoring (steamrt/tasks#786, steamrt/tasks#821, steamrt/tasks#787)
  * s-r-launcher-service:
    - Avoid a small memory leak if an error occurs on the deprecated
      `--socket` or `--socket-directory` code paths
  * Diagnostic tools:
    - Use automatic memory management in more places
  * Library code:
    - Use more automatic resource management
    - Further refactoring of architecture handling
      (steamrt/tasks#786, steamrt/tasks#821, steamrt/tasks#787)
    - Better compatibility with GLib >= 2.78 (steamrt/tasks#787)
    - Improve thread-safety (steamrt/tasks#787)
    - Documentation updates (steamrt/tasks#787)
  * Tests:
    - Now that the supported architectures are not hard-coded, we can
      test some of the aarch64 code paths even if pressure-vessel was
      compiled for x86, and vice versa (steamrt/tasks#786)
    - Improve coverage
      (steamrt/tasks#786, steamrt/tasks#821, steamrt/tasks#787)
    - Check for fd leaks more thoroughly (steamrt/tasks#787)

 -- Simon McVittie <smcv@collabora.com>  Mon, 03 Nov 2025 18:08:33 +0000

steam-runtime-tools (0.20250926.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel:
    - Fix a crash in the rare scenario that two different Vulkan/EGL
      drivers, layers, etc. of the same type are implemented by hard links
      or symbolic links to the same library
      (steam-runtime-tools!849)
    - Fix sense of check for root as graphics stack provider when deciding
      how to handle LD_PRELOAD=libfoo.so.0
      (steam-runtime-tools!830)
    - STEAM_COMPAT_RUNTIME_SDL2=classic tries to select "classic" SDL2,
      even if sdl2-compat is the default.
      This will only work in Steam Linux Runtime releases that include the
      libsdl2-classic package: at the time of writing there are no such
      releases, but the next soldier and sniper betas should have this.
      This is a step towards making sdl2-compat the new default.
      (steamrt/tasks#774)
    - Make better use of cached information about drivers
      (steam-runtime-tools!831, steam-runtime-tools!832)
    - Add experimental options to select separate graphics stack providers
      on a per-architecture basis. For best results they should all be at
      the same version of key components such as glibc and Mesa: for example,
      x86_64 Debian 13 and i386 Debian 13 works well, but
      x86_64 Debian 13 and i386 Debian 12 or vice versa should not be
      expected to be reliable. (steamrt/tasks#785)
    - Improve correctness of how we handle different JSON manifests
      referring to the same Vulkan/EGL driver, layer, etc. on different
      architectures
      (steamrt/tasks#805)
    - Refactoring
      (steamrt/tasks#785, steamrt/tasks#786, steamrt/tasks#805,
      steamrt/tasks#808, steamrt/tasks#810)
  * Diagnostic tools:
    - x86_64 is now sorted before i386 in steam-runtime-system-info output
    - steam-runtime-launch-options now offers 'Use "classic" SDL2'
      as a choice for the "SDL 2" option. This is equivalent to
      STEAM_COMPAT_RUNTIME_SDL2=classic (see above).
      (steamrt/tasks#774)
  * Library code:
    - Fix fallback multiarch tuple for otherwise unsupported architectures
      (steam-runtime-tools!836)
    - More internal utility functions
      (steam-runtime-tools!839)
    - Refactoring in architecture handling
      (steamrt/tasks#785, steamrt/tasks#786, steamrt/tasks#805)
  * Packaging:
    - d/libsteam-runtime-tools-0-0.symbols:
      Belatedly update for 0.20250820.0
  * Tests:
    - Improve test coverage
      (steam-runtime-tools!847, steamrt/tasks#786)
    - Fix unit test regression on Debian 14 prereleases
      (steamrt/tasks#796)
    - Fix a Meson deprecation warning
    - CI updates

  [ Tony Wasserka, Simon McVittie ]
  * Diagnostic tools:
    - Improve keyboard navigation in steam-runtime-launch-options
      (steamrt/tasks#795)

  [ Timo Witte ]
  * Fix a typo (ValveSoftware/steam-runtime#775)

 -- Simon McVittie <smcv@collabora.com>  Fri, 26 Sep 2025 18:58:22 +0100

steam-runtime-tools (0.20250820.0) steamrt; urgency=medium

  * SteamLinuxRuntime_*:
    - On non-x86, only set filter_exclusive_priority to 0 for sniper
      (steamrt/tasks#766)
  * Documentation updates
  * CI updates (steamrt/tasks#767)

 -- Simon McVittie <smcv@collabora.com>  Wed, 20 Aug 2025 12:43:21 +0100

steam-runtime-tools (0.20250718.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * Documentation updates

  [ Ludovico de Nittis ]
  * SteamLinuxRuntime_*:
    - Set `filter_exclusive_priority` to 0 for unknown architectures.
      Temporary workaround to allow the Steam client to do its grouping and
      filtering only when it is actually needed. (steamrt/tasks#766)
  * CI:
    - Use archive.debian.org for Debian 10. (steamrt/tasks#767)

 -- Ludovico de Nittis <ludovico.denittis@collabora.com>  Fri, 18 Jul 2025 14:50:31 +0200

steam-runtime-tools (0.20250616.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel:
    - Write original path to Vulkan layers, etc. into JSON manifests.
      This allows the module to load other libraries via ${ORIGIN} or load
      data files relative to its own location from dladdr1(), and helps
      gdb to load detached debug symbols via .gnu_debuglink references.
      (steamrt/tasks#736)
  * build-aux:
    - Use docker/podman run --platform in preference to --arch,
      for better interoperability (steamrt/tasks#757)
  * Documentation updates
    - Recommend debuginfod more strongly
    - Describe how to do post-mortem debugging on a core dump
      (Helps: steam-runtime#760)
    - Suggest using Toolbx rather than schroot
    - Update release procedure to reflect how we currently do it
  * CI updates (steamrt/tasks#750)

  [ Ryan Gonzalez ]
  * pressure-vessel:
    - Optionally import OpenXR 1 runtimes from the graphics stack provider
      into the container, similar to the way Vulkan drivers are handled.
      This is considered experimental, and could cause regressions by
      pulling in runtimes with non-trivial shared library dependencies,
      so for now it is only done if requested by setting environment
      variable PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES to 1.
      (steamrt/tasks#607)
    - Refactoring

  [ Patrick Nicolas, Ryan Gonzalez ]
  * pressure-vessel:
    - Make sockets used by Monado and WiVRn available in the container.
      This is currently gated by the same environment variable as
      OpenXR 1 runtimes, PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1.
      (steamrt/tasks#607)

 -- Ludovico de Nittis <ludovico.denittis@collabora.com>  Mon, 16 Jun 2025 16:35:44 +0200

steam-runtime-tools (0.20250530.0) steamrt; urgency=medium

  * pressure-vessel:
    - Don't include the epoch in metadata filenames describing licensing
      and copyright status, fixing a regression in 0.20250501.0 where our
      Steampipe depots contained filenames that aren't allowed
      (steamrt/tasks#746)
  * SteamLinuxRuntime_*:
    - Relax restrictions on ~ in filenames (steamrt/tasks#746)
    - Set `filter_exclusive_priority` for steamrt4.
      medic has been discontinued and steamrt4 is going to be a
      Debian-13-based runtime instead, with steamrt5 being repurposed as
      the development branch based on Debian testing. (steamrt/tasks#741)
  * s-r-launch-options:
    - Update labelling of Steam Runtime branches (steamrt/tasks#741)
  * Documentation updates (steamrt/tasks#741)
  * Tests/CI updates for steamrt4 (steamrt/tasks#741)

 -- Simon McVittie <smcv@collabora.com>  Fri, 30 May 2025 16:08:50 +0100

steam-runtime-tools (0.20250516.0) steamrt; urgency=medium

  [ Ryan Gonzalez ]
  * Diagnostic tools:
    - steam-runtime-system-info now reports OpenXR runtimes
      (steamrt/tasks#608)
    - Avoid reporting OpenXR runtimes as inactive if they have the same
      canonicalized path as an active runtime

  [ Simon McVittie ]
  * pressure-vessel:
    - Update Flatpak-derived code from 1.16.1
  * Documentation updates

 -- Simon McVittie <smcv@collabora.com>  Fri, 16 May 2025 18:14:55 +0100

steam-runtime-tools (0.20250501.0) steamrt; urgency=medium

  [ Ryan Gonzalez ]
  * CI:
    - Add automated coverage reports

  [ Simon McVittie ]
  * CI:
    - Move Gitlab-CI setup to .gitlab-ci.yml
    - Upload both x86 and aarch64 artifacts to repo.steampowered.com
      (steamrt/tasks#708)
  * Tests:
    - Fix a rare test failure (steamrt/tasks#724)
    - Add LD_PRELOAD modules that mimic recent MangoHud, for manual testing
      (steamrt/tasks#595)

 -- Simon McVittie <smcv@collabora.com>  Thu, 01 May 2025 14:41:44 +0100

steam-runtime-tools (0.20250425.0) steamrt; urgency=medium

  * SteamLinuxRuntime family:
    - Rename away more problematic filenames (steamrt/tasks#719)
  * Documentation updates

 -- Simon McVittie <smcv@collabora.com>  Fri, 25 Apr 2025 16:43:33 +0100

steam-runtime-tools (0.20250408.0) steamrt; urgency=medium

  [ Ryan Gonzalez ]
  * libsteam-runtime-tools:
    - Implement discovery of OpenXR runtimes (steamrt/tasks#608)
    - Refactoring
  * Build system:
    - Fix UBSan compatibility with GLib toolchain assumptions
      (steamrt/tasks#677)
  * Tests:
    - Factor out code for pretty-printing JSON
    - Factor out code for comparing strings and showing a line-by-line
      diff if they are different

  [ Simon McVittie ]
  * pressure-vessel:
    - Make the AT-SPI accessibility bus available inside the sandbox,
      allowing steamwebhelper and Steam apps/games to communicate with
      screen readers and other assistive technologies (steamrt/tasks#699)
  * Diagnostic tools:
    - Query the supported surface formats for VA-API instead of assuming
      I420 is supported. Thanks to David Rosca
      (steamrt/tasks#702, steam-runtime#752)
    - Clean up allocation and error handling in check-va-api
  * Documentation:
    - docs/can-i-use.md: Document some version numbers and features
      that we can or can't rely on
  * Tests:
    - Don't fail when encountering a known issue with the ncurses family,
      allowing CI testing to be expanded to newer host distributions
      (steamrt/tasks#341, steamrt/tasks#703)

  [ Ludovico de Nittis ]
  * Tests:
    - CI fixes

 -- Simon McVittie <smcv@collabora.com>  Tue, 08 Apr 2025 14:14:29 +0100

steam-runtime-tools (0.20250225.0) steamrt; urgency=medium

  [ Ryan Gonzalez ]
  * libsteam-runtime-tools:
    - Add OpenXR architecture name mapping for known architectures
      (steamrt/tasks#608)

  [ Simon McVittie ]
  * libsteam-runtime-tools:
    - process-manager: Use correct program name instead of hard-coding
      pv-adverb
  * pressure-vessel:
    - Build srt-bwrap with unnecessary options disabled
    - Automatically discover library dependencies instead of hard-coding
      what we expect them to be in scout. A benefit of this is that it
      also makes the relocatable install built on scout smaller, by
      no longer including unnecessary libraries from libselinux, pcre3
      and util-linux (steamrt/tasks#112)
    - Move non-entry-points into pkglibexecdir with short names.
      This avoids having them in the PATH where they might be relied on
      as an "API" by Steam or Steam games, and makes them more distinctive
      in ps(1) or similar. (steamrt/tasks#669)
    - Improve support for building a relocatable install on newer base
      library stacks
  * s-r-launch-options:
    - Look for pv-adverb in ${libexecdir} first, falling back to its
      old location
  * Build system:
    - Fix the linker option to select RPATH in preference to RUNPATH
    - Remove some unnecessary dependency checks
  * Packaging:
    - Build pressure-vessel on any suite, removing the special case
      for scout. Official binary builds continue to be done on scout to
      minimize the host OS requirements, but this gives us the option
      to raise host OS requirements to something a little more modern
      in future.
    - Improve ability to build on non-x86
  * Tests:
    - Test pressure-vessel on modern Debian releases
    - Improve parallelization
    - Build packages on Debian 11 'bullseye', giving us test coverage for
      an environment that is less specialized than scout
      (steamrt/tasks#669, steamrt/tasks#679)
    - Build packages and a relocatable pressure-vessel for aarch64, giving
      us test coverage for an architecture that doesn't have the biarch
      special cases that x86 does (steamrt/tasks#669, steamrt/tasks#679)

 -- Simon McVittie <smcv@collabora.com>  Tue, 25 Feb 2025 14:36:40 +0000

steam-runtime-tools (0.20250217.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * libsteam-runtime-tools:
    - Refactoring (steamrt/tasks#595)
    - Improve test coverage (steamrt/tasks#595)
  * pressure-vessel:
    - Export parent dir of LD_PRELOAD modules, unless it's $HOME.
      This should make local installations from source of MangoHud and
      similar modules more reliable (steamrt/tasks#595)
    - Add STEAM_COMPAT_RUNTIME_SDL2=sdl2-compat, which selects a
      non-default sdl2-compat if present in the runtime, rather than
      classic SDL 2.
      This will not be practically useful until we have a release of
      soldier and/or sniper that includes a copy of sdl2-compat.
      (steamrt/tasks#579, steamrt/tasks#573)
    - Refactoring (steamrt/tasks#595)
  * s-r-launch-options:
    - Set SDL_VIDEO_DRIVER (SDL 3) as well as SDL_VIDEODRIVER (SDL 2)
    - Allow control over SDL dynamic API overrides (steamrt/tasks#579)
    - Set DEBUG_INVOCATION=1 if extra debug is requested
  * Build system:
    - Add convenience files to cross-compile for aarch64, as an example
      of a non-x86 architecture
  * Tests:
    - Add a build pass for aarch64 to the CI
    - Fix a JSON syntax error in aarch64 test data
    - Refactoring (steamrt/tasks#595)
    - Improve coverage (steamrt/tasks#595)
    - Fix a wrong assertion which only worked as a result of compensating
      errors (steamrt/tasks#595)

  [ Ryan Gonzalez ]
  * libsteam-runtime-tools:
    - Refactoring (steamrt/tasks#608)

 -- Simon McVittie <smcv@collabora.com>  Mon, 17 Feb 2025 13:37:13 +0000

steam-runtime-tools (0.20250122.0) steamrt; urgency=medium

  * Tests/CI:
    - Don't fail testing if libgbm.so.1 is incomplete (steamrt/tasks#647)

 -- Simon McVittie <smcv@collabora.com>  Wed, 22 Jan 2025 15:39:02 +0000

steam-runtime-tools (0.20250116.0) steamrt; urgency=medium

  * SteamLinuxRuntime family:
    - Always generate ./run (steamrt/tasks#634)
    - Only generate ./run-in-SUITE for branches with a
      backwards-compatibility requirement for it to exist
  * Tests/CI:
    - meson: Add pkg-config field next to deprecated pkgconfig

 -- Simon McVittie <smcv@collabora.com>  Thu, 16 Jan 2025 18:06:11 +0000

steam-runtime-tools (0.20250107.0) steamrt; urgency=medium

  [ Timothee Besset ]
  * steamwebhelper support scripts:
    - If we cannot detect the uncompressed size, guess 250M for the
      purposes of block size and progress reporting.
      This speeds up detection of corrupted archives.
      (steam-for-linux#11602, steam-runtime-tools!775)

  [ Simon McVittie ]
  * log: Treat DEBUG_INVOCATION=1 as equivalent to SRT_LOG=debug
  * Update libglnx to 2025-01-06
    - Fix an assertion failure if creating a parent directory encounters
      a dangling symlink
    - Fix compiler warnings with clang 19.1.6
    - Fix Meson warnings with Meson 1.1.0
  * Documentation updates
    - In particular, this includes developer documentation for how to
      launch debugging and development commands outside the SLR container
      (see docs/slr-for-game-developers.md)

  [ Ludovico de Nittis ]
  * Set a default merge request template

 -- Simon McVittie <smcv@collabora.com>  Tue, 07 Jan 2025 20:52:34 +0000

steam-runtime-tools (0.20241125.0) steamrt; urgency=medium

  * pressure-vessel:
    - Generate /etc/passwd, /etc/group for the container.
      This fixes interoperability with systemd-homed or remote user
      directories when running games that disregard `$HOME`
      (ValveSoftware/steam-runtime#705)
  * Developer/debugging tools:
    - Make steam-runtime-launch-options work as intended in the Gamescope
      session on Steam Deck.
      Note that it doesn't accept controller input, so it requires using
      the touchscreen, a touchpad that Steam Input represents as a mouse,
      or an external USB mouse. (steamrt/tasks#602)
    - Remove obsolete --directory='' from a debug hint shown by
      s-r-launcher-service
  * Documentation improvements

 -- Simon McVittie <smcv@collabora.com>  Mon, 25 Nov 2024 17:04:10 +0000

steam-runtime-tools (0.20241118.0) steamrt; urgency=medium

  * populate-depot: Set filter_exclusive_priority equal to major version.
    This allows the Steam client to distinguish between mutually
    incompatible branches like soldier and sniper, and avoid offering
    one as a way to run games that expect the other. (steamrt/tasks#597)

 -- Simon McVittie <smcv@collabora.com>  Mon, 18 Nov 2024 11:20:48 +0000

steam-runtime-tools (0.20241111.0) steamrt; urgency=medium

  * pressure-vessel:
    - Add a mechanism to set SDL_DYNAMIC_API to force use of the runtime's
      version of SDL2 in a non-distro-specific way, even in games that
      have their own bundled or statically-linked SDL2 (as long as it is
      version ≥ 2.0.2 and the dynapi feature has not been disabled).
      This can be activated by setting a game's launch options to
      `STEAM_COMPAT_RUNTIME_SDL2=1 %command%` or by adding
      `runtime-sdl2` to `STEAM_COMPAT_FLAGS`. (steamrt/tasks#578)
    - Add an equivalent mechanism for SDL3_DYNAMIC_API, activated via
      `STEAM_COMPAT_RUNTIME_SDL3=1` or `runtime-sdl3`.
      This is not practically useful yet, but will become relevant when
      we start to provide SDL3 in runtimes. (steamrt/tasks#578)

 -- Simon McVittie <smcv@collabora.com>  Mon, 11 Nov 2024 17:32:39 +0000

steam-runtime-tools (0.20241101.0) steamrt; urgency=medium

  * pressure-vessel:
    - Fix setup of VDPAU drivers in the container, which regressed in
      v0.20231128.0 (steam-runtime-tools!764)
    - Use host versions of libdrm family if newer, even without an explicit
      dependency, defending against possible use of dlopen() for these
      libraries in future Mesa releases (see mesa/mesa!21658)
    - Share $STEAM_RUNTIME_SCOUT with the container, so that
      Steam Linux Runtime 1.0 can use it (steamrt/tasks#520)
    - Update bubblewrap to 0.11.0
      + improved logging on error (steamrt/tasks#444)
  * s-r-dialog:
    - Prefer to look for s-r-dialog-ui in $STEAM_RUNTIME_SCOUT
      (steamrt/tasks#520)
  * Diagnostic tools:
    - Fix build with Vulkan-Loader 1.3.296 and slightly improve error
      reporting (steam-runtime-tools!765)
  * Tree-wide:
    - Consistently disable GIO modules for any executable with an RPATH,
      but restore them before steam-runtime-urlopen runs external programs
      (steamrt/tasks#505)
    - Documentation updates
  * tests:
    - Avoid invalid escape sequences in JSON, avoiding test failures with
      json-glib 1.10

 -- Simon McVittie <smcv@collabora.com>  Fri, 01 Nov 2024 12:18:54 +0000

steam-runtime-tools (0.20240916.0) steamrt; urgency=medium

  * pressure-vessel:
    - If using host libxkbcommon, try to use host libxkbcommon-x11
      as well (steamrt/tasks#530)
    - Update libcapsule to 0.20240916.0
      + avoid a spurious warning when using the "symbols" comparison order
        for a library with versioned symbols
    - Update Flatpak-derived code from 1.15.10
      + no functional changes
    - Update bubblewrap to 0.10.0
      + no functional changes in the parts used by pressure-vessel
  * srt-logger:
    - Add timestamps in the log file (steamrt/tasks#537)
  * Library code / tree-wide changes:
    - Update libglnx to 2024-08-23
    - Fix lint warnings in shell/Python scripts

 -- Simon McVittie <smcv@collabora.com>  Mon, 16 Sep 2024 19:17:29 +0100

steam-runtime-tools (0.20240820.0) steamrt; urgency=medium

  [ Ryan Gonzalez ]
  * steam-runtime-urlopen:
    - When run inside the scout LD_LIBRARY_PATH runtime, if unable to
      open the URL via xdg-desktop-portal or Steam fails, fall back to
      removing the runtime's environment variables and running the
      system copy of xdg-open if any (steamrt/tasks#489)
  * srt-run-outside-ldlp:
    - New tool which can be used in the scout LD_LIBRARY_PATH runtime,
      to run system commands such as xdg-email without compatibility
      issues or overhead caused by the runtime or the Steam Overlay
      (steamrt/tasks#489)

  [ Simon McVittie ]
  * Internal changes:
    - Fix build with glibc 2.39
    - Fix build with GLib 2.81.x
    - srt-run-outside-ldlp: Fix logging issues

 -- Simon McVittie <smcv@collabora.com>  Tue, 20 Aug 2024 13:51:30 +0100

steam-runtime-tools (0.20240809.0) steamrt; urgency=medium

  * pressure-vessel:
    - Treat /var/lib/dbus as a reserved path, fixing an issue where the
      container runtime would not start if /var/lib was in $XDG_DATA_DIRS
      and /var/lib/dbus/machine-id on the host was a regular file
      (steamrt/tasks#493, steam-runtime#688)
    - Similarly treat /var/run as a reserved path for completeness
    - Don't share paths with the container just because they appear in
      $XDG_CONFIG_DIRS or $XDG_DATA_DIRS.
      This avoids a category of possible regressions similar to
      steam-for-linux#10789 and steam-runtime#688.
      If additional shared paths are required, advanced users can still
      add them to PRESSURE_VESSEL_FILESYSTEMS_RO or
      PRESSURE_VESSEL_FILESYSTEMS_RW as before. (steamrt/tasks#493)
  * steam-runtime-launch-options (developer tool):
    - Accept reaper and steam-launch-wrapper in either order
      (steamrt/tasks#266)
    - Switch to user-specified LDLP runtime before running reaper and/or
      steam-launch-wrapper (steamrt/tasks#489)

 -- Simon McVittie <smcv@collabora.com>  Fri, 09 Aug 2024 14:39:25 +0100

steam-runtime-tools (0.20240806.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel:
    - Update libcapsule to 0.20240806.0
      + Always rewrite the symlink target, fixing a regression on NixOS
        (steam-runtime#684)
      + Improve consistency of capsule-capture-libs diagnostic messages
    - If running under srt-logger ≥ 0.20240726.0, mark each diagnostic
      message from capsule-capture-libs with its severity
    - Silence a spurious warning for libnvidia-pkcs11 on Ubuntu 24.04
      (steamrt/tasks#488)
  * SteamLinuxRuntime 1.0:
    - Update fallback code path to account for changes in the Steam client
      since May 2024 (steamrt/tasks#490)

  [ Ryan Gonzalez, Simon McVittie ]
  * srt-logger:
    - Avoid reopening log file unnecessarily, fixing a regression in
      0.20240805.0 (steamrt/tasks#487)

 -- Simon McVittie <smcv@collabora.com>  Tue, 06 Aug 2024 14:20:58 +0100

steam-runtime-tools (0.20240805.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pv-runtime:
    - Don't import host CA certificates when running under Snap
      (steamrt/tasks#416, workaround for canonical/steam-snap#397)

  [ Ryan Gonzalez ]
  * srt-logger:
    - Reopen output log files if they get deleted or replaced, for example
      by a developer wanting to clear out old logs before reproducing
      an issue (steamrt/tasks#487)

 -- Simon McVittie <smcv@collabora.com>  Mon, 05 Aug 2024 19:11:13 +0100

steam-runtime-tools (0.20240802.0) steamrt; urgency=medium

  * pressure-vessel:
    - Add a mechanism to take CA certificates from the host
      (steamrt/tasks#416)
    - Update Flatpak-derived files from 1.15.9
  * srt-logger:
    - Avoid using buggy g_log_writer_is_journald() implementation in GLib
      2.58.x, fixing automatic redirection of messages to the Journal
      (steamrt/tasks#461)
  * all tools:
    - Apply steamrt/tasks#481 workaround globally, so that we can rely on it
      everywhere

 -- Simon McVittie <smcv@collabora.com>  Fri, 02 Aug 2024 15:47:57 +0100

steam-runtime-tools (0.20240726.0) steamrt; urgency=medium

  * all tools:
    - Optionally prepend a priority level marker to each diagnostic
      message (steamrt/tasks#444)
  * srt-logger:
    - Add an early call to g_ascii_strtoull() to avoid an apparent
      GLib bug (steamrt/tasks#481)
    - Propagate error message, if any, through _srt_syslog_level_parse
  * tests:
    - Add sample code to print GLib messages with a priority prefix
      (steamrt/tasks#444)
    - Add test coverage for _srt_syslog_level_parse()
      (steamrt/tasks#481)

 -- Simon McVittie <smcv@collabora.com>  Fri, 26 Jul 2024 15:18:01 +0100

steam-runtime-tools (0.20240725.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel:
    - Try to provide /usr/${LIB}/gconv in the container.
      This fixes 64-bit games' use of iconv, and therefore indirectly
      Easy Anti-Cheat, on Void Linux
      (steamrt/tasks#477, ValveSoftware/steam-runtime#680)
    - Don't warn if library aliases are missing from secondary
      architectures (steamrt/tasks#367)

  [ Ryan Gonzalez ]
  * srt-logger:
    - Add --parse-level-prefix option to parse systemd-cat-style priority
      level prefixes (steamrt/tasks#444)
    - New --default-level option sets the log priority to be assumed for
      lines that do not have a prefix (or for all lines if
      --parse-level-prefix is not used), defaulting to INFO
    - New --file-level, --journal-level, --terminal-level options limit
      the messages logged to each destination.
      By default all messages go to the log file, and to the Journal
      if used.
      By default messages of INFO level or higher go to the terminal
      (therefore DEBUG messages are excluded).
    - Color messages that are logged to the terminal based on their level,
      similar to journalctl

 -- Simon McVittie <smcv@collabora.com>  Thu, 25 Jul 2024 12:16:24 +0100

steam-runtime-tools (0.20240718.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * srt-logger:
    - Don't set SRT_LOG_TO_JOURNAL if there are other log destinations
      (steamrt/tasks#466)
    - Add --sh-syntax, which reports whether the logger has started
      successfully and provides environment variables in sh(1) syntax
      (steamrt/tasks#460, steamrt/tasks#461)
    - Add --background, which should be used when combining srt-logger
      with a subreaper (steamrt/tasks#460)
    - Add ${pkglibexecdir}/logger-0.bash, a convenience binding for use
      in bash scripts (steamrt/tasks#461)
  * s-r-dialog-ui:
    - Try to use the "GoNotoKurrent" fonts provided by the Steam UI
      for better glyph repertoire, falling back to the system sans-serif
      font if those are not available (steamrt/tasks#462)
  * s-r-launch-options:
    - Remove support for obsolete Steam Runtime 1½ 'heavy'
  * pressure-vessel:
    - Avoid spurious warnings about masking /etc/vulkan/*.d
    - Update Flatpak-derived code to Flatpak 1.15.8
  * build:
    - Remove support for obsolete Steam Runtime 1½ 'heavy'
    - Require GLib 2.58.x.
      We now have a backport of GLib 2.58.x in Steam public betas' version
      of Steam Runtime 1 'scout', and the same version is bundled with
      relocatable pressure-vessel releases.
      Users of `build-aux/many-builds.py` will need to run
      `build-aux/many-builds.py deps` to download the new scout release
      before they can continue to compile steam-runtime-tools.
    - debian: Require SDL2_ttf for all packaged builds
  * documentation:
    - Mostly stop mentioning obsolete Steam Runtime 1½ 'heavy'
  * tests:
    - Expand test data for game controllers (steamrt/tasks#287)

  [ Ryan Gonzalez ]
  * srt-logger:
    - Preparations for passing through priority prefixes to the
      systemd Journal (steamrt/tasks#444)

 -- Simon McVittie <smcv@collabora.com>  Thu, 18 Jul 2024 12:40:43 +0100

steam-runtime-tools (0.20240610.0) steamrt; urgency=medium

  * srt-logger:
    - Avoid delay when copying log messages to the terminal
      (steamrt/tasks#447)
    - Improve error handling
    - Don't close standard file descriptors if given e.g. --journal-fd=2
    - More consistently take the Journal code path if stderr is the Journal
    - Improve test coverage

 -- Simon McVittie <smcv@collabora.com>  Mon, 10 Jun 2024 19:38:33 +0100

steam-runtime-tools (0.20240530.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * SteamLinuxRuntime etc.:
    - Allow all SLR branches to show in the UI (steamrt/tasks#426)
    - Don't remove empty files and symlinks when SDK sysroot is enabled
      (steamrt/tasks#448)
  * pressure-vessel:
    - Don't enable snapd workarounds by default.
      Since snapd 2.62, we do not need any special workarounds.
    - Fix a build regression with GLib 2.80.x
    - Update Flatpak-derived code to Flatpak 1.14.8.
      Some error messages are now clearer.
    - Update libcapsule to v0.20240520.0.
      No functional changes: we already had the most important changes.
  * tests:
    - Test the SDK sysroot in CI, even for non-protected branches
      (steamrt/tasks#448)

  [ Ryan Gonzalez ]
  * srt-supervisor:
    - Be compatible with kernels that do not enable CONFIG_PROC_CHILDREN,
      such as ChromeOS (steamrt/tasks#445)
  * build:
    - Don't attempt to build UI code if SDL_ttf is missing
    - build-aux: Improve docker/podman functionality
    - build-aux: Disable introspection on Clang asan builds

 -- Simon McVittie <smcv@collabora.com>  Thu, 30 May 2024 15:23:51 +0100

steam-runtime-tools (0.20240422.0) steamrt; urgency=medium

  * srt-logger:
    - Drop severity of log redirection from NOTICE to INFO.
      This means it won't be shown by default.
  * pressure-vessel:
    - Don't crash if /var/cache appears in $XDG_DATA_DIRS
      (steamrt/tasks#434, steam-for-linux#10789)
    - Generally improve handling of XDG_CONFIG_DIRS entries, XDG_DATA_DIRS
      entries and other exported directories that are in reserved locations
  * Tests:
    - Fix a unit test failure when running under podman with overlayfs
      storage driver
  * Internal changes:
    - Update libglnx to 2024-04-20
      + Add G_PID_FORMAT backport
      + Avoid deprecation warnings in g_steal_fd backport
      + Fix function detection when using -Werror=return-type
    - .editorconfig: Add

 -- Simon McVittie <smcv@collabora.com>  Mon, 22 Apr 2024 19:56:26 +0100

steam-runtime-tools (0.20240415.0) steamrt; urgency=medium

  * steam-runtime-supervisor:
    - New tool, a less specialized version of pressure-vessel-adverb
      (steamrt/tasks#387)
  * pressure-vessel:
    - Better handling of LD_PRELOAD modules and VDPAU drivers on
      distributions like Clear Linux and Solus that use lib64 and lib32
      directories (steam-runtime#642)
    - Update srt-bwrap to be identical to bubblewrap v0.9.0
      + Use a clearer error message when mount(2) fails with ENOSPC
        (ValveSoftware/steam-runtime#637)
      + Make --symlink idempotent
      + Add --argv0 option
      + Fix a double-close
      + Fix various compiler warnings, etc.
      + Improve documentation
  * SLR_soldier, SLR_sniper:
    - Rename files in *_platform_*/files/ that could cause distribution
      issues or be deleted by over-zealous cleanup tools
      (steam-for-linux#10614, steamrt/tasks#422)
      + non-Windows-friendly filenames (containing :, etc.)
      + **/__pycache__/*.pyc
      + **/.cache/**
      + **/tmp/**
    - Save some space by using the same mechanism to preserve hard-links
  * Refactoring

 -- Simon McVittie <smcv@collabora.com>  Mon, 15 Apr 2024 17:43:56 +0100

steam-runtime-tools (0.20240321.1) steamrt; urgency=medium

  * pressure-vessel:
    - Fix a regression in handling of Vulkan layers since 0.20240301.0
      (steam-runtime#662)
    - pv-adverb: Don't corrupt stdout if we emit a debug message during
      command-line parsing
  * pv-verify:
    - Don't fail verification for parents of a contents= filename
      (steamrt/tasks#422)
  * SteamLinuxRuntime, SLR_soldier, SLR_sniper:
    - Add filter_exclusive property to tool manifests (steamrt/tasks#426)
  * Packaging:
    - Don't build steam-runtime-tools-ui on Steam Runtime 1½ 'heavy'
    - Fix some typos in the previous changelog entry
  * Tests:
    - test-logger: Avoid a race condition that could make the test fail

 -- Simon McVittie <smcv@collabora.com>  Mon, 15 Apr 2024 11:33:44 +0100

steam-runtime-tools (0.20240321.0) steamrt; urgency=medium

  * 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)
    - Unset LD_PRELOAD etc. before running srt-bwrap, matching what we will
      actually do in pressure-vessel (steam-runtime#658)
  * 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)
  * 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 srt-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

 -- Simon McVittie <smcv@collabora.com>  Thu, 21 Mar 2024 16:24:52 +0000

steam-runtime-tools (0.20240306.0) steamrt; urgency=medium

  * 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)

 -- Simon McVittie <smcv@collabora.com>  Wed, 06 Mar 2024 17:47:27 +0000

steam-runtime-tools (0.20240301.0) steamrt; urgency=medium

  * 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

 -- Simon McVittie <smcv@collabora.com>  Fri, 01 Mar 2024 19:20:01 +0000

steam-runtime-tools (0.20240212.0) steamrt; urgency=medium

  * 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

 -- Simon McVittie <smcv@collabora.com>  Mon, 12 Feb 2024 11:29:18 +0000

steam-runtime-tools (0.20240126.0) steamrt; urgency=medium

  * SteamLinuxRuntime_sniper.sh: Tolerate CRLF line endings in VERSIONS.txt
    (steamrt/tasks#375)

 -- Simon McVittie <smcv@collabora.com>  Fri, 26 Jan 2024 12:55:48 +0000

steam-runtime-tools (0.20240125.0) steamrt; urgency=medium

  * pressure-vessel:
    - When running in Flatpak, forward inherited fds to subsandbox
      (steam-runtime#644, fixing a regression in 0.20240103.0)

 -- Simon McVittie <smcv@collabora.com>  Thu, 25 Jan 2024 13:48:43 +0000

steam-runtime-tools (0.20240124.1) steamrt; urgency=medium

  * 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 McVittie <smcv@collabora.com>  Wed, 24 Jan 2024 16:10:42 +0000

steam-runtime-tools (0.20240123.2) steamrt; urgency=medium

  * 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)

 -- Simon McVittie <smcv@collabora.com>  Tue, 23 Jan 2024 20:36:28 +0000

steam-runtime-tools (0.20240123.1) steamrt; urgency=medium

  * upload-artifacts: Really upload SteamLinuxRuntime.tar.xz
    (steamrt/tasks#375, steamrt/tasks#376)

 -- Simon McVittie <smcv@collabora.com>  Tue, 23 Jan 2024 15:38:51 +0000

steam-runtime-tools (0.20240123.0) steamrt; urgency=medium

  * 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)

 -- Simon McVittie <smcv@collabora.com>  Tue, 23 Jan 2024 14:05:40 +0000

steam-runtime-tools (0.20240119.0) steamrt; urgency=medium

  * 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

 -- Simon McVittie <smcv@collabora.com>  Fri, 19 Jan 2024 18:06:44 +0000

steam-runtime-tools (0.20240103.0) steamrt; urgency=medium

  * 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)

 -- Simon McVittie <smcv@collabora.com>  Wed, 03 Jan 2024 17:12:15 +0000

steam-runtime-tools (0.20231208.0) steamrt; urgency=medium

  * 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

 -- Simon McVittie <smcv@collabora.com>  Fri, 08 Dec 2023 12:28:58 +0000

steam-runtime-tools (0.20231128.0) steamrt; urgency=medium

  * 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)

 -- Simon McVittie <smcv@collabora.com>  Tue, 28 Nov 2023 19:10:40 +0000

steam-runtime-tools (0.20231107.1) steamrt; urgency=medium

  * Fix internal version information

 -- Simon McVittie <smcv@collabora.com>  Tue, 07 Nov 2023 14:03:21 +0000

steam-runtime-tools (0.20231107.0) steamrt; urgency=medium

  * 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

 -- Simon McVittie <smcv@collabora.com>  Tue, 07 Nov 2023 12:10:59 +0000

steam-runtime-tools (0.20231013.1) steamrt; urgency=medium

  * 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)

 -- Simon McVittie <smcv@collabora.com>  Tue, 24 Oct 2023 19:47:07 +0100

steam-runtime-tools (0.20231013.0) steamrt; urgency=medium

  * 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

 -- Simon McVittie <smcv@collabora.com>  Fri, 13 Oct 2023 18:05:59 +0100

steam-runtime-tools (0.20230928.1) steamrt; urgency=medium

  * 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)

 -- Simon McVittie <smcv@collabora.com>  Thu, 05 Oct 2023 14:47:34 +0100

steam-runtime-tools (0.20230928.0) steamrt; urgency=medium

  * pressure-vessel: Update libcapsule to v0.20230928.0
    - Don't treat libcrypt.so.1 as part of glibc.
      It's build-time optional since glibc 2.28, and is not built
      by default since 2.38. In newer distributions like Debian >= 11 and
      Ubuntu >= 20.04, it's usually replaced by libxcrypt.
      (steamrt/tasks#332)
  * launch-options: Override PRESSURE_VESSEL_PREFIX when needed

 -- Simon McVittie <smcv@collabora.com>  Thu, 28 Sep 2023 18:30:13 +0100

steam-runtime-tools (0.20230922.0) steamrt; urgency=medium

  * system-info:
    - Fix a use-after-free closing standard output of the vulkan and
      xdg-portal checks

 -- Simon McVittie <smcv@collabora.com>  Fri, 22 Sep 2023 15:53:05 +0100

steam-runtime-tools (0.20230919.0) steamrt; urgency=medium

  * pressure-vessel:
    - Use a fully-resolved path when pointing to Vulkan drivers' and layers'
      JSON manifests, fixing broken symlinks when running under Flatpak
      (steam-runtime-tools#124)
    - Try to avoid duplicating Vulkan drivers and layers, by marking their
      manifests with the `library_arch` parameter where appropriate.
      In particular this fixes loading of released MangoHud versions
      under Flatpak (steam-runtime#618)
  * system-info:
    - Fix an incorrect use of VA-API that can cause an assertion failure in
      debug builds of Mesa (steam-runtime-tools#117). Thanks to David Rosca
    - Fix an incorrect use of VA-API that can cause the check to fail
      with non-Mesa drivers. Thanks to Emil Velikov
    - Avoid searching ~/.local/share for Vulkan drivers twice if it
      resolves to the same path as $XDG_DATA_HOME
    - Log a warning if machine-readable output cannot be closed
    - Refactoring
  * input-monitor:
    - Fix an ongoing memory leak
  * Documentation updates
  * Tests:
    - Fix continuous-integration failure when the beta and stable scout SDKs
      currently have different versions of a library that gets bundled
      with pressure-vessel, notably GLib
    - Improve logging when testing graphics driver discovery

 -- Simon McVittie <smcv@collabora.com>  Tue, 19 Sep 2023 18:47:01 +0100

steam-runtime-tools (0.20230905.0) steamrt; urgency=medium

  * identify-library-abi: On Exherbo, run both versions of ldconfig.
    Unlike other multiarch/multilib designs, Exherbo has one build of
    ldconfig per architecture, each with its own configuration that only
    searches libraries intended for that word size.
    (Helps: steam-runtime#615)

 -- Simon McVittie <smcv@collabora.com>  Tue, 05 Sep 2023 12:45:26 +0100

steam-runtime-tools (0.20230831.0) steamrt; urgency=medium

  * system-info: Detect whether the LD_LIBRARY_PATH or container runtime
    is on a fully-featured Linux filesystem
    - Non-Linux filesystems (NTFS, FAT, SMB/CIFS, etc.) are diagnosed as a
      potential issue because they often lack features like permissions,
      ownership, symbolic links and hard links.
    - Networked filesystems (NFS, SMB/CIFS, etc.) are diagnosed as a
      potential issue because they often make "fast" metadata operations
      unexpectedly slow.
    - Overlay and user-space filesystems (overlayfs, FUSE, etc.) are
      diagnosed as a potential issue because we cannot tell whether the
      backing filesystem is in one of the above problematic categories.
  * pressure-vessel: Try to cope with being unable to set file permissions:
    - On a NTFS or other non-Unix filesystem
      (steam-runtime#434, steam-runtime#460, steam-runtime#491,
      steam-runtime#544, steam-runtime#606)
    - On a Unix filesystem owned by someone else
      (as seen in a comment on steam-runtime#434)
    - Please note that Proton is outside the scope of this project, and
      intentionally does not allow being shared between different Unix
      user IDs (see Proton#4820, steam-runtime#477).
    - Please note that the affected configurations are not recommended.
      The recommended layout is to have all Steam libraries on native,
      local Linux filesystems (ext4, btrfs, xfs or similar), owned by the
      same user ID that runs Steam.
    - System administrators should be aware that configuring write access
      to the Steam library for more than one user, for example NTFS
      with umask=007 or 000, will allow any of the users with write
      permission to gain control over the account of any other user
      who will run Steam games from that library (a privilege escalation
      security vulnerability).
      Do not use this arrangement unless you completely trust all users
      who have write access to the Steam library.
  * Update libglnx to 2023-08-29:
    - Use libglnx backport of g_strv_equal() instead of our own
    - Avoid generating crash dumps during unit testing
  * Build system refactoring

 -- Simon McVittie <smcv@collabora.com>  Thu, 31 Aug 2023 14:56:42 +0100

steam-runtime-tools (0.20230804.0) steamrt; urgency=medium

  * pressure-vessel fixes:
    - Improve log messages from capsule-capture-libs when a library
      dependency is not found (Helps: jupiter/tasks#887)
    - Be compatible with timeout(1) from busybox
      (Helps: ValveSoftware/Dota-2#2390)
    - Fix some small memory leaks
  * Diagnostic tools:
    - Be compatible with timeout(1) from busybox
    - Fix memory leaks when querying steam: protocol handler
    - Fix memory leaks when loading prior results from serialized JSON
  * Tests/CI:
    - Fix several memory leaks
  * Lint fixes
  * Documentation updates

 -- Simon McVittie <smcv@collabora.com>  Fri, 04 Aug 2023 19:18:27 +0100

steam-runtime-tools (0.20230718.0) steamrt; urgency=medium

  * pressure-vessel fixes:
    - runtime: Cope with OSs where an alias is used as the canonical
      SONAME.
      In particular this handles libbz2.so.1 on Fedora, which doesn't match
      the upstream SONAME libbz2.so.1.0.
      (Resolves: ValveSoftware/Dota-2#2392)
    - runtime: Ignore nvidia-vaapi-driver when capturing VA-API drivers.
      It has more major dependencies than we are really prepared to deal
      with, in particular GStreamer.
      (Resolves: ValveSoftware/Dota-2#2392)
    - runtime: If creating one alias fails, move on to the next one
    - runtime: Improve debug logging for libraries taken from the host OS
    - runtime: Improve debug logging for libraries that have aliases
    - runtime: Improve debug logging for exported paths
  * Documentation updates

 -- Simon McVittie <smcv@collabora.com>  Tue, 18 Jul 2023 17:33:22 +0100

steam-runtime-tools (0.20230621.0) steamrt; urgency=medium

  * pressure-vessel:
    - Don't let bubblewrap prevent standard output from reporting
      end-of-file (steam-runtime#593)
    - Add pv-adverb --assign-fd option
  * input-monitor:
    - Hex-dump evdev capabilities by default, in a format that is easier
      to copy/paste into steam-runtime-tools and SDL test data
    - Also hex-dump the HID report descriptor for HID devices
    - Add --only-new option, which is the opposite of --once
  * system-info:
    - check-vulkan: Update for Vulkan-Headers >= 1.3.246
    - check-xdg-portal: Look for more xdg-desktop-portal interfaces.
      The June 2023 update to Steam makes more use of the various portals,
      in particular the FileChooser for "native" File -> Open... dialogs.
  * Documentation:
    - Update for Debian 12 having been released
    - Make CLI tools show a placeholder in --help for all options with
      arguments
    - Mention Steam Runtime 5 as another possible future branch

 -- Simon McVittie <smcv@collabora.com>  Wed, 21 Jun 2023 16:51:12 +0100

steam-runtime-tools (0.20230605.0) steamrt; urgency=medium

  * launch-client:
    - Add --inside-app=APPID option.
      This attempts to run the command inside Steam app/game APPID,
      similar to --bus-name=com.steampowered.AppAPPID.
    - Add --alongside-steam option.
      This attempts to run the command in the same execution environment
      as Steam, without the Steam Runtime, similar to how Steam implements
      non-Steam game shortcuts. (steamrt/tasks#293, steam-runtime-tools#107)
    - Add --host option.
      This attempts to run the command on the host system from inside a
      Flatpak or Snap app, similar to flatpak-spawn --host.
    - Officially deprecate --dbus-address and --socket
    - Refactoring
  * launcher-service:
    - Add --alongside-steam option
      (steamrt-tasks#293, steam-runtime-tools#107)
    - Add --no-replace option
    - Refactoring

 -- Simon McVittie <smcv@collabora.com>  Mon, 05 Jun 2023 11:52:06 +0100

steam-runtime-tools (0.20230601.0) steamrt; urgency=medium

  * pressure-vessel:
    - Cope gracefully with duplicate modules in LD_PRELOAD/LD_AUDIT
      (steamrt/tasks#302)
  * scout-on-soldier:
    - Remove compatibility with very old soldier releases
  * steam-runtime-tools library:
    - Use CRLF line endings for diagnostic messages if stderr is a terminal,
      fixing stair-stepping when running s-r-launch-client with debug enabled
  * launcher-service:
    - Add --stop-on-parent-exit option
    - Validate bus names properly
    - Improve exit status for a wrong --exit-on-readable
    - Fix a typo in the man page
  * Automated tests:
    - Restructure pv-adverb code so we can unit-test it
    - Make sure we generate an invalid D-Bus name when needed
    - Expand test coverage for launcher-service options

 -- Simon McVittie <smcv@collabora.com>  Thu, 01 Jun 2023 19:29:57 +0100

steam-runtime-tools (0.20230509.0) steamrt; urgency=medium

  * check-vulkan: Avoid out-of-spec behaviour that caused a crash with
    some versions of the Nvidia proprietary driver (steamrt/tasks#294).
    Thanks to James Jones.
  * pv-wrap: Try to share TMPDIR, etc. with the container.
    We share /tmp with the container, so it's consistent if we also
    share $TMPDIR and so on.
  * pv-wrap: Don't use temporary directories below $XDG_RUNTIME_DIR.
    Canonical's unofficial Snap packaging of Steam sets this up, but then
    doesn't allow pressure-vessel to bind-mount that location
    (steam-runtime#586)

 -- Simon McVittie <smcv@collabora.com>  Tue, 09 May 2023 11:06:33 +0100

steam-runtime-tools (0.20230418.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * system-info, pressure-vessel: Support Vulkan layer manifest version 1.2.1
    - In system-info, report the library_arch field (if present)
    - In pressure-vessel, copy the library_arch field (if present)
    (steam-runtime-tools#103)

 -- Simon McVittie <smcv@collabora.com>  Tue, 18 Apr 2023 20:22:36 +0100

steam-runtime-tools (0.20230405.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * pressure-vessel: Ignore the Discord IPC socket if it's a dangling
    symlink, fixing a regression in 0.20230403.0 for users of the
    Discord Flatpak app (steam-runtime#581)

  [ Simon McVittie ]
  * Add some missing symbols to the ABI tracking
  * Documentation updates
    - container-runtimes: Add release notes link
    - container-runtimes: Link to container-runtime.md for general info
    - slr-for-game-developers: Fix some broken links
  * Correct version number in meson.build

 -- Simon McVittie <smcv@collabora.com>  Wed, 05 Apr 2023 16:17:56 +0100

steam-runtime-tools (0.20230403.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel: Remove pv-test-ui.
    This has been superseded by steam-runtime-launch-options.
    Please see docs/slr-for-game-developers.md for more information.
  * Documentation updates, especially in docs/slr-for-game-developers.md
    - Describe how to use steam-runtime-launch-options
    - Clarify how to unpack the soldier SDK
    - Describe how to use a locally-modified Platform or SDK
    - Document more required and recommended libraries
    - Put more emphasis on sniper and less on soldier
    - Add some advice on debugging SLR on new distributions
    - Expand READMEs for SteamLinuxRuntime and SteamLinuxRuntime_soldier
    - Add a README for SteamLinuxRuntime_sniper
    - Improve cross-references
  * Update bundled projects:
    - bubblewrap v0.8.0
    - libglnx to 2023-02-27

  [ Ludovico de Nittis ]
  * pv-wrap: Share Discord "Rich Presence" IPC sockets with the container
    (steam-runtime-tools#102)
  * system-info: Detect whether the desktop session is X11 or Wayland,
    and related information (steamrt/tasks#235)
  * system-info: Fix a minor memory leak
  * Test improvements

 -- Simon McVittie <smcv@collabora.com>  Mon, 03 Apr 2023 19:55:55 +0100

steam-runtime-tools (0.20230314.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pv-wrap: Stop providing /run/host/container-runtime.
    This was never an intended way to detect the container environment:
    the intended interface is to look for /run/host/container-manager, as
    per <https://systemd.io/CONTAINER_INTERFACE/>.
    Removing this will cause controller hotplug detection to regress in
    games that bundled their own copy of SDL between 2.25.x (sometime
    around September 2022) and 2.26.4. However, removing this can also
    avoid a crash with some bundled SDL versions.
    The regression can be avoided by not bundling SDL, and instead
    relying on the Steam Runtime to provide a sufficiently recent version.

  [ Ludovico de Nittis ]
  * graphics-provider: Ignore Homebrew/Linuxbrew paths.
    Older versions of Homebrew used to install `ldconfig` into the general
    Homebrew bin directory that was usually prepended to PATH. This
    could result in crashes, because ldconfig is tightly coupled to the
    version of glibc in use, and we would try to use Homebrew's ldconfig
    with the system glibc. Newer versions of Homebrew avoid this by not
    putting their ldconfig in the PATH. (steam-runtime#569)
  * wrap-setup: Preserve a custom XCURSOR_PATH values from the host
    (steam-runtime#572)

  [ Simon McVittie, Miguel Casique Meneses ]
  * Tests/CI adjustments (steamrt/tasks#248)

 -- Simon McVittie <smcv@collabora.com>  Tue, 14 Mar 2023 12:26:12 +0000

steam-runtime-tools (0.20230227.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * library: Separate the libelf based checks into a separate helper.
    We can't compile inspect-library with an RPATH because we want to
    load libraries as the host system does, which means we can't guarantee
    to be able to find libelf.so.1 if the host system doesn't have it.
    Avoid this dependency by moving the libelf based checks into a separate
    helper program, with the right RPATH to find the bundled copy. This
    also keeps that code out of the critical path for identifying
    graphics drivers in pressure-vessel.
    (steamrt/tasks#236, steam-runtime#562)
  * inspect-library helper: Refactoring

 -- Simon McVittie <smcv@collabora.com>  Mon, 27 Feb 2023 19:10:52 +0000

steam-runtime-tools (0.20230220.0) steamrt; urgency=medium

  * pressure-vessel:
    - Ensure Vulkan layer manifests are all in the same
      directory, fixing a regression in 0.20230206.0 for layers like
      MangoHUD that use $LIB or $PLATFORM in their layer_path
      (steamrt/tasks#239, steam-runtime#564)
    - Log critical warnings if layers are not going to work
    - Don't append layers to VK_DRIVER_FILES under FEX-Emu
  * steam-runtime-launch-options:
    - Allow edits to the game's command-line options.
      As with all settings in steam-runtime-launch-options, these are
      not saved from one run to the next, so this is a convenient way to
      make temporary changes like adding -vulkan to Source-engine-based
      games without affecting the next run of the same game.

 -- Simon McVittie <smcv@collabora.com>  Mon, 20 Feb 2023 17:40:42 +0000

steam-runtime-tools (0.20230216.0) steamrt; urgency=high

  * check-vulkan: Add new error codes from Vulkan-Loader v1.3.239
    (steamrt/tasks#228)
  * pv-wrap: Temporarily provide /run/host/container-runtime.
    This is a hotfix for a SDL 2.26.x regression that broke controller
    hotplug (steamrt/tasks#234)

 -- Simon McVittie <smcv@collabora.com>  Thu, 16 Feb 2023 13:58:13 +0000

steam-runtime-tools (0.20230206.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * pressure-vessel: Reuse the basename of Vulkan drivers.
    Since Vulkan Loader 1.3.234, it is possible to select which driver to
    use by listing their names in the environment variable
    `VK_LOADER_DRIVERS_SELECT`, but this functionality will only work with
    pressure-vessel if we keep the original JSON manifest name.
    (steamrt/tasks#223, steam-runtime#558)

 -- Simon McVittie <smcv@collabora.com>  Mon, 06 Feb 2023 15:13:34 +0000

steam-runtime-tools (0.20230131.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * runtime: Correct path_visible_in_provider_namespace() check.
    This makes Vulkan layers work more reliably, particularly if installed
    into ~/.local/share for a home directory in /home (steamrt/tasks#213).

  [ Simon McVittie ]
  * CI: Build and upload content for Steam app 1070560 (SteamLinuxRuntime)
    rather than handling it as a special case of the workflows used for
    soldier and sniper (helps: steamrt/tasks#200, steamrt/tasks#207)
  * _v2-entry-point: Remove unused verbose() function
  * populate-depot.py: Internal improvements for CI
    (helps: steamrt/tasks#200, steamrt/tasks#206)
  * tests: Use -S option when invoking old versions of Python
  * tests: Internal improvements

 -- Simon McVittie <smcv@collabora.com>  Tue, 31 Jan 2023 16:45:14 +0000

steam-runtime-tools (0.20230112.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * scripts: Convert most scripts from bash to the POSIX shell /bin/sh.
    This improves robustness if the bash found in $PATH cannot be run
    in the scout environment, in particular if it was installed via Nix
    and relies on DT_RUNPATH. (steam-runtime#545, steamrt/tasks#209)
  * container-runtime: Remove backwards compatibility with old versions
    of the pressure-vessel/ directory
  * container-runtime: Update documentation to reflect this now being part
    of steam-runtime-tools

  [ Ludovico de Nittis ]
  * system-info: Detect when an expected version definition was missing
    from a library, either having different version definitions or being
    completely unversioned (steamrt/steam-runtime-tools#95)

 -- Simon McVittie <smcv@collabora.com>  Thu, 12 Jan 2023 19:51:50 +0000

steam-runtime-tools (0.20221215.0) steamrt; urgency=medium

  * CI fixes only:
    - build: Write .tarball-version into source tarballs
    - populate-depot: Use .tarball-version to determine scripts version
    - populate-depot: Use scout as default LD_LIBRARY_PATH runtime

 -- Simon McVittie <smcv@collabora.com>  Thu, 15 Dec 2022 12:10:03 +0000

steam-runtime-tools (0.20221208.1) steamrt; urgency=medium

  * CI: Also make the actual binaries available to debuginfod

 -- Simon McVittie <smcv@collabora.com>  Thu, 08 Dec 2022 15:01:56 +0000

steam-runtime-tools (0.20221208.0) steamrt; urgency=medium

  * pressure-vessel: Pass through Gamescope's special Wayland display
  * subprojects: Add a copy of the SteamLinuxRuntime scripts.
    This will help us to coordinate changes between steam-runtime-tools and
    SteamLinuxRuntime.
  * CI: Refactoring
  * debian: Stop including redundant source code in
    pressure-vessel-relocatable.deb (if source code is required, use the
    steam-runtime-tools.dsc source package)

 -- Simon McVittie <smcv@collabora.com>  Thu, 08 Dec 2022 14:42:15 +0000

steam-runtime-tools (0.20221130.0) steamrt; urgency=medium

  * pressure-vessel: Update Flatpak-derived code to 1.14.1
    * Don't bind-mount /efi into containers, same as /boot
    * Slightly better debug info for failures
    * Use a better XML DOCTYPE for fonts.conf
    - The remaining changes are in code that doesn't get compiled into
      pressure-vessel.
  * pressure-vessel: Update included copy of bubblewrap to 0.7.0
    - Improve error messages
    - The remaining changes are not relevant to pressure-vessel.
  * pressure-vessel: Make sure we don't use bwrap --perms option if we are
    using a system copy of bwrap that doesn't support it
  * s-r-launch-client: Make --version, --list output to standard output
    as intended, not standard error
  * library: Improve logging/debugging support
    - Ensure the three standard file descriptors always point somewhere,
      even if that's /dev/null
    - Send warnings and error messages to the systemd journal (on systems
      where it exists) if they would otherwise go to /dev/null
    - If output is going to the systemd journal, create our own stream so
      that it is labelled correctly
    - pv-wrap: Log more details about the changes made to the runtime to
      create the container's root filesystem
    - pv-wrap, pv-adverb: with SRT_LOG=journal, redirect warnings and
      errors to the systemd journal (output from the actual game is not
      redirected)
    - pv-wrap: With SRT_LOG=overrides, log the full contents of /overrides
      for comparison and debugging
    - pv-wrap: With SRT_LOG=container, log the full contents of the
      container's root filesystem (as modified from the runtime) for
      comparison and debugging

 -- Simon McVittie <smcv@collabora.com>  Wed, 30 Nov 2022 15:57:57 +0000

steam-runtime-tools (0.20221115.1) steamrt; urgency=medium

  * tests: Don't assume /dev/shm is a real directory.
    In older chroot environments it's sometimes a symbolic link to /run/shm.

 -- Simon McVittie <smcv@collabora.com>  Tue, 15 Nov 2022 18:49:16 +0000

steam-runtime-tools (0.20221115.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * pv-wrap: Improve path mapping under FEX-Emu or similar emulators
    by distinguishing between paths visible to native code (aarch64)
    and paths visible to emulated code (x86)

  [ Simon McVittie ]
  * pv-exports: Treat /run/gfx the same as /run/host
  * pv-wrap: Add --deterministic option to make consecutive logs easier
    to compare with generic diff tools
  * pv-wrap: Make the debug log shorter and easier to compare by omitting
    redundant path segments
  * pv-runtime: Detect some errors that were previously ignored
  * pv-runtime: Improve robustness against crashing if initialization fails
  * pv-locale-gen:
    - Produce less repetitive output
    - Launch a bit faster
    - Give a better hint about why we want a locale
  * pv-adverb: Let missing locales show on stderr.
    This will give users a hint about how they can speed up container setup.
    (Helps: steam-runtime#541)
  * s-r-input-monitor: Sort hidraw and evdev devices "naturally"
  * library code: Add SRT_LOG=TOKEN[,TOKEN...] option to alter how we log.
    Possible values are subject to change, but currently:
    - debug: enables debug and info messages, implied by --verbose or
      PRESSURE_VESSEL_VERBOSE=1
    - diffable: reduces differences between logs (show fewer process IDs,
      etc.), implied by pv-wrap --deterministic
    - info: enables info messages, implied by PRESSURE_VESSEL_LOG_INFO=1
    - pid: force process IDs to be logged, even if diffable was used
    - timestamp: prefix log lines with a timestamp, implied by
      PRESSURE_VESSEL_LOG_WITH_TIMESTAMP=1
    - timing: show the time taken for various operations (performance
      profiling), even if not debugging
  * Update libglnx subproject
    - Use its g_memdup2() backport instead of our own

 -- Simon McVittie <smcv@collabora.com>  Tue, 15 Nov 2022 17:24:54 +0000

steam-runtime-tools (0.20221014.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * pressure-vessel: Add support for FEX-Emu graphics library thunking.
    When emulating x86 on aarch64, FEX-Emu optionally loads thin x86
    graphics driver libraries that make calls into the underlying aarch64
    graphics drivers, instead of implementing the whole user-space part
    of the graphics driver in x86 code that needs to be emulated. To
    make this work as intended, we have to ensure that the search path
    for each of these categories includes both the x86 version from the
    FEX-Emu rootfs and the aarch64 version from the host system:
    - Vulkan drivers and layers
    - EGL drivers and external platforms
    - GLX drivers
    - Mesa DRI drivers
    - VA-API drivers
    Doing this for VDPAU drivers is not currently supported, because VDPAU
    only searches a single directory, not a search path.
  * pv-runtime, pv-graphics-provider: Refactoring to support the above
  * graphics: Refactoring to support the above

  [ Ludovico de Nittis, Simon McVittie ]
  * pv-runtime: Capture libudev.so.0 again, but only if the SONAME matches.
    This means we can pick up Arch Linux's libudev.so.0 shim if available,
    but we won't pick up an incorrect libudev.so.0 -> libudev.so.1 symlink
    like the one in ValveSoftware/steam-runtime#533.

  [ Simon McVittie ]
  * Update libglnx
    - Make cloning a file consistently seek to the end
    - More backports from newer GLib
  * Tests:
    - Add a script to run the tests in a LD_LIBRARY_PATH environment
  * Adjust for rename of default branch name to main

 -- Simon McVittie <smcv@collabora.com>  Fri, 14 Oct 2022 15:31:35 +0100

steam-runtime-tools (0.20220927.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pv-runtime: Don't capture libudev.so.0 for now.
    This means we won't use a system copy of libudev0-shim, but avoids
    crashes on systems where libudev.so.0 is incorrectly a symlink to
    libudev.so.1. (steam-runtime-tools#96, ValveSoftware/steam-runtime#533)
  * libcurl-compat: Make it possible for run.sh to activate or deactivate
    the compatibility shim without re-running setup.sh (steamrt/tasks#119)
  * Tests:
    - Improve ability to run tests against the Steam Runtime environment
    - Improve diagnostic output if JSON results differ

  [ Ludovico de Nittis ]
  * Tests:
    - Fix an intermittent unit test failure (steamrt/tasks#162)

 -- Simon McVittie <smcv@collabora.com>  Tue, 27 Sep 2022 17:31:10 +0100

steam-runtime-tools (0.20220919.0) steamrt; urgency=medium

  [ Ludovico de Nittis ]
  * pressure-vessel: If using libudev from the host, provide read-only
    access to /run/udev.
    This is sufficient to identify non-hotplugged game controllers in
    games that use libudev directly (older bundled SDL versions, or not
    using SDL at all).
    - Controller hotplug support continues to require using an up-to-date
      version of SDL or Proton.
    - This is not done for older host OSs (Debian 10, Ubuntu 18.04, etc.)
      because on these older OSs we have to use the container's libudev,
      but the host /run/udev is not necessarily compatible with that.
    (steamrt/tasks#171)
  * tests: Fix test failure with Arch Linux glibc ≥ 2.36-4

  [ Simon McVittie ]
  * pv-runtime: Use host's libudev if equal to or newer than container
    libudev, even if no graphics driver depends on it.
    This makes it more likely that we can parse /run/udev.
    (steamrt/tasks#171)
  * tests: Fix test failure with latest Steam Runtime 1 'scout' images

 -- Simon McVittie <smcv@collabora.com>  Mon, 19 Sep 2022 17:46:02 +0100

steam-runtime-tools (0.20220908.0) steamrt; urgency=medium

  * libcurl-compat: When building for scout (only), build a shim libcurl
    that can dispatch to runtime or system copies.
    This works around ABI divergence from upstream in the libcurl in
    Debian/Ubuntu between about 2005 and 2018, which unfortunately includes
    the time at which Steam Runtime 1 'scout' started. Additional setup in
    the steam-runtime scripts is necessary to take advantage of this.
    (steamrt/tasks#119)
  * Documentation updates:
    - compat-tool-interface: Non-Steam launch options can have %command% now
    - launch-client, shared-paths: Remove notes about obsolete versions
    - launch-client: Update release status
    - launch-client: Say where to find it
    - launcher-interface-0: Move example to launch-client
  * Tests:
    - Improve support for using the tests "as-installed" to test a proposed
      Steam Runtime
    - generate-sysroots: Avoid using undefined string escape sequences
    - Generalize TAP test template
  * build-aux: Actually use clang for the build labelled "clang"
  * launch-options: Update for steam-launch-wrapper addition to recent betas

 -- Simon McVittie <smcv@collabora.com>  Thu, 08 Sep 2022 13:38:04 +0100

steam-runtime-tools (0.20220823.0) steamrt; urgency=medium

  * pressure-vessel: Preserve X11 display number instead of redirecting
    it to :99. This avoids X11 being broken by an unrelated X display :99
    on the host, listening on an abstract socket. (steam-runtime#524)
  * pressure-vessel: Improve test coverage for directory exporting
    (steamrt/tasks#149)
  * pressure-vessel: Avoid startup failure with --filesystem=/overrides
  * build: Require Meson 0.56.2 backport, update build system accordingly
  * bin: Document that s-r-identify-library-api --directory only looks at
    symlinks, not regular files
  * tests: Fix test failure with glibc 2.34+
  * tests: Fix test failures with older GLib on Steam Runtime 1½ 'heavy'
  * tests: Fix test failure with older GLib on Steam Runtime 2 'soldier'

 -- Simon McVittie <smcv@collabora.com>  Tue, 23 Aug 2022 17:18:43 +0100

steam-runtime-tools (0.20220803.0) steamrt; urgency=medium

  * pressure-vessel: Share more paths with the container by default
    (steamrt/tasks#149, steam-runtime#334, steam-runtime#393,
    steam-runtime#429, steam-runtime#470, Proton#5102,
    steam-runtime-tools#18)
    - If the user's real home directory is shared with the container,
      also share the typical paths for removable media: /run/media,
      /media, /mnt.
    - If the user's real home directory is shared with the container,
      also share FHS 3.0 top-level directories /home, /opt and /srv.
  * Locally-created top-level directories that don't follow any particular
    specification (for example /storage, /files, /games) continue to not be
    shared by default. They can still be shared by setting the
    STEAM_COMPAT_MOUNTS environment variable.
  * A new document docs/shared-paths.md describes what is and isn't shared.

 -- Simon McVittie <smcv@collabora.com>  Wed, 03 Aug 2022 17:38:10 +0100

steam-runtime-tools (0.20220802.0) steamrt; urgency=medium

  * s-r-launch-client, s-r-launcher-service improvements:
    - s-r-launch-client now defaults to --directory="" (inherit directory
      from server) unless talking to Flatpak services (steamrt/tasks#145)
    - s-r-launch-client automatically overrides $TERM if stdin, stdout or
      stderr is a terminal, unless disabled with --inherit-env=TERM
    - s-r-launch-client defaults to running a shell if no command
      is specified
    - Add s-r-launch-client -c COMMAND, a CLI shortcut for
      s-r-launch-client ... -- sh -c COMMAND
    - Add s-r-launch-client --inherit-env[-matching]=VAR
    - Add s-r-launch-client --env-fd=FD
    - Deprecate s-r-l-s --socket[-directory]
    - Documentation improvements
  * tests: More strict machine-readable TAP output
  * tests: Avoid s-r-launch-client altering controlling terminal settings

 -- Simon McVittie <smcv@collabora.com>  Tue, 02 Aug 2022 16:36:35 +0100

steam-runtime-tools (0.20220726.0) steamrt; urgency=medium

  * s-r-launch-client, s-r-launcher-service improvements:
    - Add s-r-launcher-interface-0, a simplified interface for compat
      tools such as SteamLinuxRuntime and Proton to enable debugging
      commands.
    - Use a pseudo-terminal to bridge terminals into the container.
      This allows debugging processes inside the container to take the
      pseudo-terminal as their controlling terminal, which is enough to
      run an interactive shell with full job control. (steamrt/tasks#125)
  * build: Prefer to send Meson test logs to a log file
  * docs: Documentation updates

 -- Simon McVittie <smcv@collabora.com>  Tue, 26 Jul 2022 15:20:15 +0100

steam-runtime-tools (0.20220725.1) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel: Fix a regression when launching Steam games when
    an exported filesystem path, or an ancestor or parent of an exported
    filesystem path, is an absolute symbolic link
    (Resolves: ValveSoftware/steam-runtime#516, #517, #518)
  * pressure-vessel: Improve debug logging when exporting host system
    directories to the container
  * pv-runtime: Add a log message to clarify why we are hiding the original
    version of Vulkan layers' JSON manifests (see
    ValveSoftware/steam-runtime#511)
  * build: Update option syntax for gtk_doc and man options
  * build: Update populate-depot.py from SteamLinuxRuntime scripts

  [ Ludovico de Nittis ]
  * system-info: Report whether each VA-API driver is for libva.so.1
    or libva.so.2
  * system-info: Refactoring

  [ Ryan Houdek, Ludovico de Nittis, Simon McVittie ]
  * pressure-vessel: Improve correctness of FEX-Emu host architecture
    detection

 -- Simon McVittie <smcv@collabora.com>  Mon, 25 Jul 2022 14:51:29 +0100

steam-runtime-tools (0.20220624.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * pressure-vessel: Update libcapsule to v0.20220623.0
    - Implement DT_RUNPATH for dependency search, fixing Vulkan layers
      with non-trivial dependencies (notably MangoHud) on NixOS
      (ValveSoftware/steam-runtime#511)
  * pv-runtime: Pad numeric prefixes if necessary.
    Otherwise, we could end up loading drivers or layers in an unexpected
    order, with the layer numbered 10 loaded before the layer numbered 2.
  * pressure-vessel: Override log handler for pressure-vessel log domain.
    This fixes a regression that resulted in PRESSURE_VESSEL_VERBOSE and
    STEAM_LINUX_RUNTIME_VERBOSE only being partially effective.
  * pv-runtime: Improve debug output
  * pv-runtime: Only prepend /usr to expected glibc gconv directory if it
    starts with /lib
  * .reuse/dep5: Update

  [ Ludovico de Nittis ]
  * API documentation: Remove "not optional" annotations

 -- Simon McVittie <smcv@collabora.com>  Fri, 24 Jun 2022 10:58:48 +0100

steam-runtime-tools (0.20220620.0) steamrt; urgency=medium

  * pressure-vessel improvements:
    - Compatibility with Solus glibc patches (steam-runtime#510)
    - Compatibility with FEX-Emu x86 emulation on ARM
      (steam-runtime-tools#81)
  * s-r-launch-client improvements:
    - Add --list option
    - Improve compatibility with s-r-launcher-service --replace
    - Exit 0 if Terminate() succeeds
    - Clarify documentation
  * s-r-launcher-service improvements:
    - Don't exit while we are still managing any processes
    - Add --[no-]stop-on-name-loss option. --stop-on-name-loss is still
      the default, but this might change. (steamrt/tasks#128)
    - Fail if initial acquisition of bus names fails, unless
      --no-stop-on-name-loss was given
    - Add --[no-]stop-on-exit option. --stop-on-exit is still
      the default. (steamrt/tasks#127)
    - Add --exec-fallback option (steamrt/tasks#129)
    - Allow taking more than one D-Bus name
    - Add --session, which chooses a D-Bus name automatically
    - Fix terminating non-process-group-leader processes
    - Provide $MAINPID to debug processes (steamrt/tasks#126)
  * tests: Reliability fixes

 -- Simon McVittie <smcv@collabora.com>  Mon, 20 Jun 2022 12:03:49 +0100

steam-runtime-tools (0.20220601.0) steamrt; urgency=medium

  [ Simon McVittie ]
  * system-info: Work around diagnostic tools failing in a Snap app
  * system-info: Show Snap app as a container
  * system-info: Detect several virtual machine managers, hypervisors and
    emulators (via CPUID 0x40000000 or /sys/class/dmi/id)
  * pressure-vessel: Speed up detection of host graphics drivers,
    particularly Mesa DRI and VA-API
  * pressure-vessel: Refactoring
  * pressure-vessel: Update bubblewrap subproject to 0.6.2
  * Update libglnx subproject
  * tests: Add test coverage for x86 CPU feature identification
  * build: Use Meson feature options for gtk-doc, GObject-Introspection,
    man pages

  [ Ludovico de Nittis ]
  * system-info: Indicate Vulkan "portability drivers", a new flag in
    recent versions indicating drivers implementing an API subset
  * system-info: Refactoring
  * Remove unnecessary REUSE license info for subprojects.
    Please see the subprojects' own license info instead.

 -- Simon McVittie <smcv@collabora.com>  Wed, 01 Jun 2022 17:58:13 +0100

steam-runtime-tools (0.20220420.0) steamrt; urgency=medium

  * system-info: Don't consider a symlink /run/host -> .. to be a container.
    In particular, Toolbx 0.0.99.3 sets up this situation.
    (steamrt/steam-runtime-tools!427)
  * s-r-launch-client: Rename from pv-launch and move it to bin/
  * s-r-launcher-service: Rename from pv-launcher and move it to bin/
  * s-r-launcher-service: Add the ability to wrap an arbitrary command
    (steamrt/steam-runtime-tools!428)
  * bin: Add steam-runtime-launch-options script.
    This is an experimental replacement for, and generalization of,
    PRESSURE_VESSEL_WRAP_GUI=1. When it is included in a scout runtime
    shipped with Steam, it will allow developers and testers to swap
    between runtimes by setting the Steam launch options for a game to:
        steam-runtime-launch-options -- %command%
  * build: Consistently include libglnx header as "libglnx.h"
  * build: Exclude generated code from gtk-doc documentation
  * pressure-vessel, s-r-launch-client, s-r-launcher-service: Refactoring

 -- Simon McVittie <smcv@collabora.com>  Wed, 20 Apr 2022 18:08:40 +0100

steam-runtime-tools (0.20220315.0) steamrt; urgency=medium

  * pressure-vessel: Refactoring
  * pv-runtime: Only consider locale paths if they are directories
  * pv-runtime: Try to import list of PCI IDs into container.
    MangoHud wants this, to be able to display the name of a graphics card
    from its PCI ID. (Resolves: steam-runtime-tools#85)
  * system-info: Diagnose variables added in Vulkan-Loader 1.3.207
  * pressure-vessel: Set both VK_DRIVER_FILES and VK_ICD_FILENAMES,
    for better compatibility with Vulkan-Loader 1.3.207
  * graphics: Respect VK_DRIVER_FILES, VK_ADD_DRIVER_FILES, VK_ADD_LAYER_PATH
    for better compatibility with Vulkan-Loader 1.3.207.
    Note that we are assuming the semantics that are planned for 1.3.208,
    where VK_DRIVER_FILES overrides VK_ADD_DRIVER_FILES.
    (Resolves: steamrt/tasks#95)
  * pressure-vessel: Resync Flatpak-derived code with Flatpak 1.12.7
  * build: Silence a Meson future-compatibility warning

 -- Simon McVittie <smcv@collabora.com>  Tue, 15 Mar 2022 14:31:51 +0000

steam-runtime-tools (0.20220311.0) steamrt; 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 16:03:22 +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.
    (steam-runtime-tools!406, steam-runtime#478)
  * 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

  [ Simon McVittie ]
  * 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

  [ Simon McVittie ]
  * 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
  * Unit test improvements
  * Avoid functions deprecated in GLib 2.70
  * Add some game-developer-oriented documentation
    (Resolves: steamrt/tasks#6)
  * Update shared code from Flatpak 1.12.2

  [ Ludovico de Nittis ]
  * 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
  * Create an issue template

 -- 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

  [ 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)

  [ Simon McVittie ]
  * 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
  * Update libcapsule subproject to v0.20210728.0
  * 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)
  * tests: Improve pressure-vessel test coverage

  [ 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
  * CI: Improve configuration
  * 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

  [ Simon McVittie ]
  * 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)

  [ Ludovico de Nittis ]
  * 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

  [ Simon McVittie ]
  * 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.
  * Refactoring

  [ Ludovico de Nittis ]
  * 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.
  * Refactoring

 -- 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

  [ Simon McVittie ]
  * 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.
  * Refactoring

  [ Ludovico de Nittis ]
  * 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
    (Resolves: steam-runtime-tools#59)
  * 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)
  * pressure-vessel: Improve library binding speed
  * 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)
  * Refactoring

 -- 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

  [ Simon McVittie ]
  * 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

  [ 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
  * pressure-vessel: Start to use the "info" log level

 -- 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

  [ Simon McVittie ]
  * 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
  * system-info: Detect Primus graphics driver

 -- 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
  * Fix various gtk-doc warnings

 -- Simon McVittie <smcv@collabora.com>  Fri, 02 Oct 2020 13:53:34 +0100

steam-runtime-tools (0.20200914.0) scout; urgency=medium

  [ Simon McVittie ]
  * Combine steam-runtime-tools with pressure-vessel (T22909)
  * inspect-library: Refactoring
  * CI improvements

  [ 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

pressure-vessel (0.20200908.0) scout; urgency=medium

  [ 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)
  * CI: Run tests/containers.py

  [ 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.
    SteamHTMLSurface and SteamVR use this as a rendezvous directory for
    IPC. (Resolves: pressure-vessel#10)
  * wrap: Parse app ID from $STEAM_COMPAT_APP_ID
  * wrap: Parse several environment variables for paths to mount.
    When combined with a Steam update, this should resolve a lot of issues
    involving paths outside the current working directory.
    (Resolves: pressure-vessel#4, pressure-vessel#11, pressure-vessel#12,
    steam-runtime#217, steam-runtime#236, steam-runtime#257)
  * wrap, adverb, launcher: Add ability to pass fds through to the command
    (Resolves: pressure-vessel#6)
  * runtime: Load basic NSS plugins along with host system glibc,
    fixing username resolution in soldier container on Arch Linux.
    This might also resolve steam-runtime#226, steam-runtime#264,
    steam-runtime#258, steam-runtime#192, steam-runtime#262,
    steam-runtime#227.
  * runtime: Set STEAM_RUNTIME=/ if running in scout
    (Resolves: pressure-vessel#8, and maybe steam-runtime#202,
    steam-runtime#249)
  * Improve automated tests

 -- Simon McVittie <smcv@collabora.com>  Tue, 08 Sep 2020 18:30:07 +0100

pressure-vessel (0.20200819.0) scout; urgency=medium

  * adverb, wrap: Add --terminate-timeout, --terminate-idle-timeout options.
    This will let us clean up background processes when sharing a container
    between multiple commands using -launcher and -launch.
  * adverb, wrap: Implement --exit-with-parent.
    -wrap eventually replaces itself with bubblewrap. If the bubblewrap
    process is killed, we want the adverb command to be terminated, passing
    the termination signal on to its own child process.
  * adverb: When sent a common fatal signal, try to pass it on to the child
  * launch, launcher: Allow terminating commands after a "main" command exits.
    This can be used when launching Proton games, which consist of zero or
    more setup commands, which may launch background processes, followed by
    launching the game itself.
  * wrap: Don't set up X11, etc. until after --filesystem.
    If we want to be able to use --filesystem=/tmp, then we can't set up
    the X11 socket until after we're finished with that.
  * launch: Improve error handling for forwarding signals
  * launch: Fix program name in logging
  * runtime: Always provide adverb at /run/pressure-vessel/pv-from-host
  * glib-backports: Redo backported Unix fd source in terms of a new GSource
  * Remove -unruntime-test-ui.
    We have a straightforward environment-variable-based way to select this.
  * Remove unruntime-scout.
    The SteamLinuxRuntime depot has a better implementation of this.
  * man: Improve documentation
  * CI fixes

 -- Simon McVittie <smcv@collabora.com>  Wed, 19 Aug 2020 16:33:45 +0100

pressure-vessel (0.20200805.0) scout; urgency=medium

  [ Simon McVittie ]
  * wrap: Bind-mount /run/host/os-release if available.
    Recent versions of Flatpak and systemd-nspawn can mount the host's
    os-release at /run/host/os-release, even if the rest of the host's
    /etc and /usr are not exposed to the container. For feature parity
    we should try to do the same.
  * runtime: Fix logic for whether to mount over an executable.
    When using a scout sysroot with a newer-than-scout host, we were not
    overwriting locale(1) and localedef(1) with the host copy, causing
    mismatches.
    Resolves: T22877
  * wrap: Add a minimal implementation of --filesystem.
    This is like `flatpak run --filesystem`, but for now much, much simpler;
    callers are responsible for not giving us paths that will be a problem.
    However, it's enough to bind-mount subdirectories of /tmp, which is
    what we need if we want to use them as IPC rendezvous points.
  * launcher: Add ability to run multiple commands in one container.
    See the new pressure-vessel-launcher(1) man page for details.
    We need this for Proton games, where running a game takes several
    steps. At the moment each step is its own container, which means
    they can't share locks, IPC sockets and other state.
    Partially resolves: T22770
  * all: Consistently work around glib!490 like Flatpak does
  * adverb, wrap: Don't interfere with child process's stdin, stdout
  * adverb, wrap: Pass verbosity down to adverb
  * adverb, wrap: Share pv_boolean_environment()

  [ Ludovico de Nittis ]
  * gitlab-ci: Re-enable artifacts upload.
    By increasing the CI upload limit we should be able to store the
    pressure-vessel artifacts.
  * Move locale generation to pressure-vessel-adverb
    pressure-vessel-with-lock has been renamed to pressure-vessel-adverb
    because now it has more capabilities than just taking a lock.
    This change should help the environments that are not able to normally
    run `bwrap`, like if we are in a Docker container or in a Flatpak app.
  * Test that --generate-locales is in the bwrap arguments when expected
  * tests/containers.py: Remove duplicated code

 -- Simon McVittie <smcv@collabora.com>  Wed, 05 Aug 2020 18:51:16 +0100

pressure-vessel (0.20200709.0) scout; urgency=medium

  * d/control: Fix wrong dependencies.
    I'd only intended to bump the version on the libcapsule dependency,
    not the steam-runtime-tools dependency.
  * runtime: Remove hwcaps subdirectories when looking for gconv modules.
    tests/containers.py was failing on SteamOS 2 'brewmaster' with the
    libc6-i686 package installed, because that package contains an
    optimized i686 glibc in /lib/i386-linux-gnu/i686/cmov/libc.so.6, which
    is used in preference to the baseline i586 glibc in
    /lib/i386-linux-gnu/libc.so.6. There are no corresponding optimized
    gconv modules, only /usr/lib/i386-linux-gnu/gconv/*.
  * tests: Add support for basic testing on a soldier container.
    For the moment, this is basically scout with fewer guarantees: we
    can't assume whether the host glibc is newer (like Arch Linux or
    Ubuntu 20.04) or older (like SteamOS 2 'brewmaster'). (T22544)
  * tests: Run s-r-s-i on host with LD_BIND_NOW=1.
    If we allow lazy binding, we can succeed in loading a GIO module from
    the host (which depends on a newer GObject than the one bundled with
    pressure-vessel), then find that a symbol reference fails at the time
    that we try to actually use it. Make it fail early, instead.
    In particular, this is helpful on SteamOS 2 'brewmaster'.
  * tests: Ignore inability to load libOSMesa.so.8.
    This is included in prerelease versions of SteamRT 2 'soldier',
    but because it uses the post-gcc-5 C++ ABI of libLLVM-7.so.1, it's
    incompatible with versions of libLLVM-7.so.1 that were compiled to be
    compatible with the gcc 4 C++ ABI, and in particular the one in
    SteamOS 2 'brewmaster'.
    This and the previous commit are sufficient to make tests/containers.py
    pass on SteamOS 2 'brewmaster', if we also configure libxcb.so.1 to
    be chosen by counting symbols (T22538) and libgcc_s.so.1 to be chosen
    by counting verdefs (T16561).

 -- Simon McVittie <smcv@collabora.com>  Thu, 09 Jul 2020 11:43:09 +0100

pressure-vessel (0.20200708.0) scout; urgency=medium

  * unruntime, wrap: Add a way to disable all interactivity.
    This is desirable if we are running something other than the main game,
    for example steam-runtime-system-info or various preparatory steps
    involved in running Proton.
  * wrap: Import Steam compat tool data. (T22360)
    This is necessary for Steam "compat tools" such as Proton.
    STEAM_COMPAT_DATA_PATH points to data associated with the current
    (compat tool, game) pair, for example the ${WINEPREFIX}.
    STEAM_COMPAT_TOOL_PATH doesn't exist yet, but I'm assuming that it will
    be set by some later version of the Steam client to point to Proton
    itself.
    STEAM_COMPAT_CLIENT_INSTALL_PATH points to the Steam installation. This
    is hopefully in the home directory, so hopefully we bind-mount it anyway;
    but if we don't, we should.
  * runtime: Add arguments to the right bwrap invocation.
    When we're entering the container to generate locales, we need to
    bind-mount the staging area for /overrides in *that* bwrap invocation,
    not add it as a bind-mount to the bwrap invocation that will actually
    run the game. (T22534)
  * runtime: Factor out beginning of capsule-capture-libs command-line.
    This doesn't currently include the --dest because that varies - it's
    usually arch->libdir_on_host, but not always.
  * runtime: Pass --library-knowledge to capsule-capture-libs if possible.
    For runtimes that support it, this gives us a way to override library
    comparisons. In particular, we can make sure libgcc_s.so.1 is compared
    by its version-definitions and symbols. (T16561, T16562)
  * run-in-sysroot: Copy host /etc/passwd, /etc/group.
    Otherwise, any test that refers to the username or home directory will
    fail with a warning. Prior to GLib 2.35.9 (in particular, in GLib 2.32)
    this happens in g_get_any_init_do(), which is also called to get the
    TMPDIR, so any test that wants to create a temporary directory will
    fail like this.

 -- Simon McVittie <smcv@collabora.com>  Wed, 08 Jul 2020 18:43:05 +0100

pressure-vessel (0.20200624.0) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Bind VDPAU drivers.
    If available, and newer, we bind VDPAU drivers from the host system.
  * Bind VA-API drivers and loaders.
    If available, and newer, we bind VA-API drivers and loaders from the
    host system.
  * runtime: handle merged-/usr host OS with non merged-/usr container.
    Prioritize "/usr/" over "/lib/" if it is available to avoid issues when
    we use a non merged-/usr container with a host system that is
    merged-/usr. (T22125)

  [ Simon McVittie ]
  * Update libglnx subproject from upstream
  * runtime: Look for ldconfig in /sbin, /usr/sbin.
    If we are on an OS where /sbin is not normally in unprivileged users'
    PATHs (for example Debian), we won't find ldconfig in PATH and will
    need to try harder.
  * runtime: Reset PATH in the container.
    The PATH from outside the container doesn't really make sense inside
    the container, because the directory hierarchy could be totally different
    (particularly on unusual host systems like GoboLinux and Exherbo).
    Resetting it also makes sure we don't pick up local installations in
    ~/bin or ~/.local/bin, which could have dependencies that are
    unsatisfied in the container.
    Conversely, the PATH from the host might not include everything we need
    in the container.
  * runtime: Don't critical if we were unable to lock the runtime
  * runtime: Add an option to skip generating missing locales.
    This is one of the slower parts of the whole process, and not all
    games (or automated tests) even need it.
  * runtime: Factor out a struct to hold architecture-specific details
  * runtime: Save a bwrap invocation and a shell by not using globbing
  * runtime: Sort DRI "search path" more carefully.
    As noted in the comment, the order matters.
  * runtime: Access runtime without using bwrap if possible
  * runtime: Optionally copy the runtime, and bind-mount the copy.
    This is good for two reasons. In a Flatpak runtime, we will not be able
    to do tricks with arbitrary bind-mounts; if we want the host library
    stack, we will have to rewrite the mutable copy of the runtime to
    replace container libraries with symlinks into /run/host. Also, when
    not in a Flatpak runtime, having a mutable copy of the immutable runtime
    gives developers a chance to edit the runtime to inject workarounds or
    things they're testing. (T18688, T22035)
  * bwrap: When we bind /usr, also bind /etc/ld.so.conf*
    We'll need those if we want to run ldconfig.
  * wrap: Add the ability to unshare the pid namespace.
    We can use this to test whether it can be done without breaking Steam
    (currently it cannot, unless you unload the gameoverlayrenderer.so
    module).
  * wrap: Really fail on invalid --env-if-host argument
  * locale-gen: Add --output-dir option
  * wrap-interactive: Fix display of pressure-vessel-wrap's name
  * wrap-interactive: Print exit status before --shell=after
  * wrap-interactive: Print exit status before "Enter to continue" prompt
  * utils: Preserve permissions when copying, and fall back to reflink or
    copy if hard link fails
  * scripts: Assert that we have the desired Python version.
    We require Python 3.5 (backports exist in both Steam Runtime 1 'scout'
    and Steam Runtime 1½ 'heavy'), except for scripts that are meant to run
    on test machines or non-developer Steam users' machines, which require
    Python 3.4 (SteamOS 2, Debian 8, Ubuntu 14.04).
  * build: Only instantiate libglnx subproject once
  * build: Disable optional features of steam-runtime-tools subproject
  * build: Disable -Wunused-local-typedefs globally
  * build: Centralize dependency checking
  * build: Convert parts of pressure-vessel into a static library
  * build: Split into subdirectories
  * tests: Improve coverage
  * test-ui: Fix pyflakes warning for unnecessary blank line
  * tests/relocatable-install.py: Silence a mypy warning
  * sysroot: Add a way to mount more directories rw.
    This will make it easier to install a new pressure-vessel build into a
    relocatable directory hierarchy for testing.
  * CI: Enable man pages for devel build
  * CI: Move artifacts adjacent to the job that would produce them
  * CI: Consistently indent with 4 spaces

 -- Simon McVittie <smcv@collabora.com>  Wed, 24 Jun 2020 19:05:13 +0100

pressure-vessel (0.20200331.0) scout; urgency=medium

  [ Jeremy Whiting ]
  * Add --test command line argument to pressure-vessel-wrap.
    When --test is used, check for bubblewrap executable and return
    0 if found, 1 otherwise.

  [ Ludovico de Nittis ]
  * Bind the host's ldconfig, gconv modules, locale(1) if we already use
    libc from the host
  * wrap: mount /usr/share/libdrm if using host libdrm
  * README: update scout download URL
  * README: fix scout SDK package name

  [ Simon McVittie ]
  * wrap: Remount API filesystems when operating without a runtime
  * test-ui: Do some expectation-management.
    We don't want users who discover this test UI to think that everything
    is going to work as-is.
  * test-ui: Always offer to unshare home, with a clearer UI.
    Rephrase it so that in the UI, unsharing the home directory looks like
    the active choice ("separate home directory"), with the shared home
    directory as the passive/default choice.
  * test-ui: Clarify what the "no runtime" choice means
  * test-ui: Rename "runtime" to "container runtime"
    When we start dealing with LD_LIBRARY_PATH runtimes too, the difference
    will become significant.
  * test-ui: Show the version number of pressure-vessel-wrap
  * bwrap: Don't create a /libexec symlink
  * wrap: Resync some code borrowed from Flatpak with their version
  * wrap: Correct some wait-status / exit status confusion
  * wrap: Debug-log the bwrap executable if --test succeeds
  * CONTRIBUTING.md: Add notes on what it's OK to depend on
  * build: Automatically use python3.5 if available.
    Steam Runtime 1 'scout' has python3.5 as a non-default Python 3 version,
    and python3.2 as default.
  * utils: Add a method to copy a directory tree using hard links.
    This will let us duplicate a runtime and edit it in-place.
  * runtime: Factor out a PvRuntime object
  * runtime: Add an off-switch for the host graphics stack.
    In practice we always want the host graphics stack, but maybe this
    will be useful when debugging.
  * runtime: Combine multiple runs of capsule-capture-libs into one
  * README: Document a wrong assumption
  * Build as a native package again.
    Now that deb-build-snapshot supports a Build-Suffix option in
    debian/git-version-gen.control, we don't need to worry about whether
    the version number will be less than a previous version that had a +srt
    suffix added by the Open Build Service.

 -- Simon McVittie <smcv@collabora.com>  Tue, 31 Mar 2020 20:39:16 +0100

pressure-vessel (0.20200108.0-0+steamrt1.1) scout; urgency=medium

  * wrap: Don't pass --lock-file to bwrap.
    This is redundant with us passing the fd to be held by
    pressure-vessel-with-lock, and it causes bwrap to produce the wrong
    exit status (see https://github.com/containers/bubblewrap/issues/336
    and https://github.com/containers/bubblewrap/pull/325).
  * bwrap-lock: Add support for OFD locks.
    On Linux >= 3.15, this allows us to pass a lock fd to a child process
    across bwrap's fork-and-exec the way we were already trying to, and
    have it actually work.
  * wrap: Tell child process to take out its own lock if necessary.
    Non-OFD locks don't propagate across fork(), and bwrap needs to clone()
    itself (which behaves like fork() in this respect) to separate itself
    into a parent outside the container and a child inside the container.
    This change adds a weak dependency on Linux 3.15. If we run on an older
    version, everything should still *work*, but there will be a short
    period of time during which we have already decided to use the runtime,
    but it is not locked (and in particular not protected from deletion).

 -- Simon McVittie <smcv@collabora.com>  Wed, 08 Jan 2020 15:34:14 +0000

pressure-vessel (0.20191216.0-0+steamrt1.1) scout; urgency=medium

  * wrap: Mount pressure-vessel on /run/pressure-vessel if using runtime.
    This avoids relying on the directory containing pressure-vessel being
    being below either the current working directory, or the default
    Steam library in $(realpath ~/.steam/steam).
    (Closes: ValveSoftware/steam-runtime#204)
  * ci: Do a build with AddressSanitizer and UndefinedBehaviourSanitizer

 -- Simon McVittie <smcv@collabora.com>  Mon, 16 Dec 2019 14:15:29 +0000

pressure-vessel (0.20191115.0-0+steamrt1.1) scout; urgency=medium

  * wrap: Add API for a bubblewrap-compatible fcntl lock
  * wrap: Take out a lock on the container's runtime for the duration
  * with-lock: Add a utility to do things while holding a lock
  * wrap: Use with-lock to hold the lock until all children have exited
  * wrap: Print environment variables quoted as intended
  * Go back to non-native versioning.
    Versioning pressure-vessel as a native package interacts poorly with
    the combination of the Open Build Service pseudo-binNMU suffix and the
    deb-build-snapshot tool used for prereleases:
    0.20190927.0+7+g1234567+srt1 is less than 0.20190927.0+srt1, so
    0.20190927.0 would wrongly be preferred over the prerelease at commit
    1234567, 7 commits later than 0.20190927.0.
  * Update libglnx, applying a fixed version of libglnx!14
  * build: Enable and fix many compiler warnings
  * debian: Make compiler warnings into errors for unreleased builds
  * gitlab-ci: Make compiler warnings into errors
  * wrap: Make GOptionEntry flags clearer
  * wrap: Print version number as YAML

 -- Simon McVittie <smcv@collabora.com>  Fri, 15 Nov 2019 19:03:20 +0000

pressure-vessel (0.20191112.1) scout; urgency=medium

  * Revert inclusion of libglnx!14.
    It accidentally depended on a newer GLib version.

 -- Simon McVittie <smcv@collabora.com>  Tue, 12 Nov 2019 13:52:17 +0000

pressure-vessel (0.20191112.0) scout; urgency=medium

  * ci: Add build-dependencies of steam-runtime-tools subproject
  * wrap: Don't bind-mount ~/.steam/steambeta etc. if they don't exist
  * wrap: Fix logic for whether Steam Runtime is passed through
  * Update libglnx subproject, including merge requests libglnx!13 and
    libglnx!14

 -- Simon McVittie <smcv@collabora.com>  Tue, 12 Nov 2019 13:32:32 +0000

pressure-vessel (0.20190927.0) scout; urgency=medium

  * wrap: Include all known NVIDIA libraries, except for libnvidia-gtk*

 -- Simon McVittie <smcv@collabora.com>  Fri, 27 Sep 2019 18:40:56 +0100

pressure-vessel (0.20190926.0) scout; urgency=medium

  * test-ui: Respect a few of the same environment variables as -wrap
  * wrap: Pull in EGL and Vulkan ICDs from the host system
    - Add steam-runtime-tools library dependency
  * Various CI improvements

 -- Simon McVittie <smcv@collabora.com>  Thu, 26 Sep 2019 14:55:03 +0100

pressure-vessel (0.20190912.0) scout; urgency=medium

  * Refactor pressure-vessel-wrap
  * wrap: Fail with an error if no architectures work
  * wrap: Only bind-mount host /usr/lib/locale once
  * wrap: If using host libc.so.6, also pick up host libidn2.so.0
  * wrap: Use a new pressure-vessel-locale-gen to set up locales
  * d/copyright: Remove duplication

 -- Simon McVittie <smcv@collabora.com>  Thu, 12 Sep 2019 14:54:47 +0100

pressure-vessel (0.20190823.0) scout; urgency=medium

  * Switch to "native" packaging format
  * wrap: Add PRESSURE_VESSEL_RUNTIME, which can force use of a runtime
  * wrap: Add an option to find the runtime relative to a base path
  * wrap: Add $PRESSURE_VESSEL_SHELL as default for --shell-*
  * wrap: Add $PRESSURE_VESSEL_TERMINAL and --terminal
  * wrap: Add environment variables for more options
  * wrap: When using --unshare-home, replace symlinks in ~/.steam with
    up-to-date values
  * wrap: Make --share-home take precedence over --home
  * wrap: Skip architecture setup for architectures the runtime can't run.
    This means we can use amd64-only or i386-only runtimes.

 -- Simon McVittie <smcv@collabora.com>  Fri, 23 Aug 2019 16:44:05 +0100

pressure-vessel (0.20190822.0-0+steamrt1.1) scout; urgency=medium

  * pressure-vessel-unruntime-scout: Add a shortcut way to select the
    scout runtime

 -- Simon McVittie <smcv@collabora.com>  Thu, 22 Aug 2019 15:46:36 +0100

pressure-vessel (0.20190820.0-0+steamrt1.1) scout; urgency=medium

  * Move Gitlab-CI setup into debian directory
  * Improve build-relocatable-install

 -- Simon McVittie <smcv@collabora.com>  Tue, 20 Aug 2019 18:44:27 +0100

pressure-vessel (0.20190819.0-0+steamrt1.1) scout; urgency=medium

  * Initial package

 -- Simon McVittie <smcv@collabora.com>  Mon, 19 Aug 2019 16:19:18 +0100

steam-runtime-tools (0.20200908.1) scout; urgency=medium

  * Correct version number
  * Update symbols file

 -- Simon McVittie <smcv@collabora.com>  Tue, 08 Sep 2020 18:52:28 +0100

steam-runtime-tools (0.20200908.0) scout; urgency=medium

  [ Ludovico de Nittis ]
  * inspect-library: print the real SONAME of the given library.
    This information could be used to correctly handle libraries like
    libldap that sometimes is just an alias for libldap_r.

  [ Simon McVittie ]
  * system-info: Don't confuse graphics issues with library issues.
    Previously, when we check for and find graphics issues, we'd set bits
    in the library issues bitfield instead. Only users of the C API will
    notice this, because this information doesn't end up in the JSON.
  * library: Distinguish between requested name and SONAME.
    In rare cases, like libldap-2.4 and libcurl in scout, they can differ.
  * os: Look at /run/host/os-release if we are inspecting a container.
    Recent versions of Flatpak and systemd-nspawn can mount the host's
    os-release at /run/host/os-release, even if the rest of the host's
    /etc and /usr are not exposed to the container.
  * graphics: Fix use-after-free in a debug message.
    Diagnosed by scan-build during CI.
  * CI fixes

 -- Simon McVittie <smcv@collabora.com>  Tue, 08 Sep 2020 18:17:44 +0100

steam-runtime-tools (0.20200624.0) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Add automated graphics verification for VDPAU
  * Add automated graphics verification for VA-API
  * Add a function to return the absolute path to "ubuntu12_32" directory.
    We already stored the path to "ubuntu12_32" but this information wasn't
    in the public API or the JSON report.
  * Add missing "x11/vaapi" to the s-r-s-i report
  * Add ability to load info from JSON output report (T16565)

 -- Simon McVittie <smcv@collabora.com>  Wed, 24 Jun 2020 19:04:53 +0100

steam-runtime-tools (0.20200415.0) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Diagnose problems with "steam:" URL handler
    (implements: T20052; diagnoses: steam-for-linux#6942)
  * Create a new srt_system_info_get_steam_details function
  * tests: Generate mock sysroots programmatically (fixes: T20177)
  * Enumerate VDPAU drivers from LD_LIBRARY_PATH and system library
    search path (implements: T19545)
  * Avoid warnings when a graphics check returns empty JSON
  * Check for required CPU features.
    Check if the CPU supports the features we are interested in.
    Right now they are: SSE3 (pni), x86_64 (lm) and CMPXCHG16B (cx16).
    (implements: T20489; diagnoses: steam-for-linux#5164,
    steam-for-linux#6812, steam-for-linux#6795, steam-for-linux#4196)
  * Add check-requirements preflight check.
    With check-requirements we can do a preflight check and ensure that the
    Steam client requirements are met. (implements: T20491)

  [ Simon McVittie ]
  * tests: Factor out the directory containing mock sysroots
  * tests: Add a script to generate the mock sysroots
  * Build as a native package

 -- Simon McVittie <smcv@collabora.com>  Wed, 15 Apr 2020 13:21:10 +0100

steam-runtime-tools (0.20200331.1-0+steamrt1.1) scout; urgency=medium

  * Fix version number
  * Update symbols file

 -- Simon McVittie <smcv@collabora.com>  Tue, 31 Mar 2020 21:00:28 +0100

steam-runtime-tools (0.20200331.0-0+steamrt1.1) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Add srt_vdpau_driver_resolve_library_path, etc. methods.
    The corresponding _get_library_path methods might return a relative
    path, so add a way to go from that to an absolute path.
  * Refactor vdpau tests into a single function
  * Add a special Mesa DRIs search path to cover Ubuntu 16.04.
    Ubuntu 16.04 is older than GLVND and it places Mesa loaders in
    ${libdir}/mesa and the DRIs in ${libdir}/dri.

  [ Simon McVittie ]
  * inspect-library: Ignore symbols like LIBATOMIC_1.0@LIBATOMIC_1.0.
    I had hoped that dlsym() and dlvsym() would find these special symbols,
    but in fact they don't. To check for ABI compatibility we need to look
    for specific symbols, like __atomic_load_1@LIBATOMIC_1.0.
  * build: Disable gtk-doc by default.
    This lets us do self-hosting releases from SteamRT 1 'scout'.
  * Document the minimum meson version.
    The Steam Runtime has a backport of meson 0.49.0, originally from Debian
    stretch-backports, which is the oldest thing we'll even try to support.

 -- Simon McVittie <smcv@collabora.com>  Tue, 31 Mar 2020 20:40:41 +0100

steam-runtime-tools (0.20200306.0-0+steamrt1.1) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Enumerate VDPAU drivers
  * Enumerate GLX ICDs
  * Log driver-selection environment variables
  * Add check-vdpau helper
  * Add check-va-api helper
  * meson: remove redundant Wall and Wextra flags
  * Move indirect_strcmp0 to utils
  * Move rm_rf to utils.c

  [ Simon McVittie ]
  * system-info: Add basic container detection
  * build: Belatedly update version number in meson.build
  * Fail build if version number in meson.build hasn't been updated
  * system-info: Make SRT_DRIVER_FLAGS_NONE the absence of flags
  * system-info: Add an undocumented --ignore-extra-drivers option
  * .gitignore: Ignore several common Meson build directories
  * build: Use a loop to reduce repetition when compiling shaders
  * tests: Use loops to build mock helpers
  * bin: Generalize jsonify_enum()
  * bin: Factor out jsonify_os_release
  * system-info: Make sysroot a first-class member of the object
  * Combine common code for dealing with graphics modules

  [ Jeremy Whiting ]
  * If wflinfo or check-gl fails, run a second time with
    LIBGL_DEBUG=verbose set

 -- Simon McVittie <smcv@collabora.com>  Fri, 06 Mar 2020 17:05:23 +0000

steam-runtime-tools (0.20200109.0-0+steamrt1.1) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Enumerate Mesa DRI and VA-API drivers.
    Previously we were listing only ICDs (graphics drivers).
    With this commit we are now able to get a more complete vision of the
    running system listing also Mesa DRI and VA-API drivers.

  [ Simon McVittie ]
  * Consistently call _srt_check_not_setuid() before looking at the
    environment
  * build: Consistently sort dependencies in stack order

 -- Simon McVittie <smcv@collabora.com>  Thu, 09 Jan 2020 17:44:02 +0000

steam-runtime-tools (0.20200108.0-0+steamrt1.1) scout; urgency=medium

  * SrtSystemInfo: Document that we need SIGCHLD
  * Unblock signals when spawning subprocesses, and in s-r-s-i.
    This avoids a coreutils limitation in versions [8.27, 8.29), which
    unfortunately includes Ubuntu 18.04: timeout(1) relied on SIGCHLD not
    being blocked, but did not unblock it themselves.
  * utils: Don't consider exit status 255 to be signal 127
  * tests: Use common include directories
  * s-r-s-i: Really add --version option
  * utils: Always call _srt_check_not_setuid from constructor
  * tests: Check error indicator before checking boolean result

 -- Simon McVittie <smcv@collabora.com>  Wed, 08 Jan 2020 17:45:02 +0000

steam-runtime-tools (0.20191209.0-0+steamrt1.1) scout; urgency=medium

  [ Jeremy Whiting ]
  * Use timeout(1) when checking libraries
  * Add exit_status and terminating_signal to SrtGraphics and SrtLibrary.
    If helper fails, times out or is killed we now report its exit status
    and terminating signal, if any.
  * Add and use srt_enum_value_to_nick to make string formatting for
    enum/flags types less repetitive

  [ Simon McVittie ]
  * tests: Assert that test_missing_arch gives a useful diagnostic

 -- Simon McVittie <smcv@collabora.com>  Mon, 09 Dec 2019 15:21:20 +0000

steam-runtime-tools (0.20191205.0-0+steamrt1.1) scout; urgency=medium

  * Move symbolic links to dependencies to new
    libsteam-runtime-tools-0-relocatable-libs, and add Build-Conflicts on it.
    Since steam-runtime-tools was made relocatable in c3a06cce, its build
    would fail with the Steam Runtime 1 'scout' version of dpkg if it is
    already installed system-wide.
  * debian: Add missing symbols file entries from 0.20191120.0
  * Remove trailing whitespace from source code

 -- Simon McVittie <smcv@collabora.com>  Thu, 05 Dec 2019 14:49:22 +0000

steam-runtime-tools (0.20191120.0-0+steamrt1.1) scout; urgency=medium

  [ Jeremy Whiting ]
  * Check whether GLX drivers can actually draw to an X11 window.
    This provides a more thorough test than wflinfo.
  * Check whether Vulkan drivers can actually draw to an X11 window.
    This provides a more thorough test than vulkaninfo.
  * Fix reporting of timeouts in JSON

  [ Simon McVittie ]
  * Build selected executables with a RPATH.
    This allows a copy of steam-runtime-system-info bundled in the
    LD_LIBRARY_PATH Steam Runtime to find the copies of
    libsteam-runtime-tools and libjson-glib in the same Runtime.
  * Look for wflinfo, vulkaninfo and libraries adjacent to
    libsteam-runtime-tools
  * Use g++-4.8 if default g++ is older
  * Build shaders using glslangValidator
  * Fix many compiler warnings
  * check-vulkan: Add basic command-line parsing with --help
  * Add --version argument to most executables
  * check-vulkan: Optionally make the window visible
  * Look for -check-vulkan in default helpers path, not in PATH
  * check-vulkan: Look for shaders in the correct place when installed
  * Add build-dependencies for check-gl

  [ Ludovico de Nittis ]
  * Add support for libraries with hidden dependencies
  * Detect GLX and EGL graphics library vendor (either GLVND,
    legacy non-GLVND Mesa, legacy non-GLVND NVIDIA, or other non-GLVND)

 -- Simon McVittie <smcv@collabora.com>  Wed, 20 Nov 2019 14:44:45 +0000

steam-runtime-tools (0.20191024.0-0+steamrt1.1) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Fix gtk-doc warnings about missing parameters
  * Add runtime content check for "overrides" and pinned libraries

  [ Simon McVittie ]
  * COPYING: Remove obsolete reference to GPL code, which was removed
    a while ago

 -- Simon McVittie <smcv@collabora.com>  Thu, 24 Oct 2019 16:05:21 +0100

steam-runtime-tools (0.20190926.1-0+steamrt1.1) scout; urgency=medium

  * tests: Replace SRT_TEST_ICD_SYSROOT with SRT_TEST_SYSROOT
  * Add minimal OS information from os-release(5)
  * Add support for ID_LIKE os-release(5) field
  * runtime: Use os-release(5) to detect Steam Runtime container/chroot

 -- Simon McVittie <smcv@collabora.com>  Thu, 26 Sep 2019 15:52:32 +0100

steam-runtime-tools (0.20190926.0-0+steamrt1.2) scout; urgency=medium

  * d/control: Add missing -dev dependency on libjson-glib-dev

 -- Simon McVittie <smcv@collabora.com>  Thu, 26 Sep 2019 14:51:55 +0100

steam-runtime-tools (0.20190926.0-0+steamrt1.1) scout; urgency=medium

  [ Ludovico de Nittis ]
  * locale: fix leaked SrtLocale

  [ Simon McVittie ]
  * graphics, library: Capture stderr from the checks
    and include it in their JSON output
  * locale: Check for the necessary files to generate more locales.
    This issue flag is known to appear on Arch Linux and its derivatives,
    which don't normally install /usr/share/i18n/SUPPORTED.
  * Generate autocleanup functions if GLib (or libglnx) supports it.
    This is not directly useful in steam-runtime-tools because we only
    require an older GLib, but is useful when reused in pressure-vessel.
  * Add some missing precondition checks
  * Assert we are not setuid before looking at the environment
  * graphics: Add EGL and Vulkan ICD enumeration
  * Distinguish between the Steam installation (root) and data paths.
    We had previously mixed these up: it isn't particularly obvious since
    they are usually the same. See the documentation for details.

 -- Simon McVittie <smcv@collabora.com>  Thu, 26 Sep 2019 13:34:01 +0100

steam-runtime-tools (0.20190909.0-0+steamrt1.2) scout; urgency=medium

  [ Simon McVittie ]
  * Add checks for locales and locale-related issues

  [ Jeremy Whiting ]
  * When executing graphics helpers use timeout command to kill if needed.

  [ Simon McVittie ]
  * graphics: Add precondition checks on enum arguments
  * graphics: Diagnose impossible window system, rendering interface
  * graphics: Only allow EGL_X11 with a GL-based rendering interface
  * graphics: Diagnose combination of GLX with non-GL as programming error
  * Fix numeric values in comments
  * Document SRT_GRAPHICS_ISSUES_TIMEOUT
  * Improve diagnostics if graphics timeout tests fail

  [ Jeremy Whiting ]
  * Add calling vulkaninfo to get vulkan device and version.
  * Add mock-good-vulkaninfo and mock-bad-vulkaninfo.

  [ Simon McVittie ]
  * d/.gitignore: Update for addition of steam-runtime-tools-bin
  * Speed up tests by telling the graphics check to time out sooner
  * graphics: Don't free a const version_string
  * Add a man page documenting steam-runtime-system-info

 -- Jeremy Whiting <jeremy.whiting@collabora.com>  Mon, 09 Sep 2019 11:17:49 -0600

steam-runtime-tools (0.20190822.0-0+steamrt1.1) scout; urgency=medium

  [ Jeremy Whiting ]
  * Add SrtGraphics wrapper to check for GL, GLES support
  * Remove check-gl and check-gles since we changed to using wflinfo

  [ Simon McVittie ]
  * Minor bug fixes in SrtGraphics
  * helpers: Depend on waffle-utils-multiarch
  * CI: Add a build that uses clang, scan-build, ASan and UBSan

 -- Simon McVittie <smcv@collabora.com>  Thu, 22 Aug 2019 18:50:26 +0100

steam-runtime-tools (0.20190820.1-0+steamrt1.1) scout; urgency=medium

  * Fix version number in meson.build

 -- Simon McVittie <smcv@collabora.com>  Tue, 20 Aug 2019 19:25:55 +0100

steam-runtime-tools (0.20190820.0-0+steamrt1.1) scout; urgency=medium

  [ Simon McVittie ]
  * runtime: Avoid shadowing POSIX environ
  * runtime: Fix buffer underrun if version.txt is empty

  [ Ludovico de Nittis ]
  * fake-home: Fix memory leaks
  * Filter */gameoverlayrenderer.so from LD_PRELOAD

 -- Simon McVittie <smcv@collabora.com>  Tue, 20 Aug 2019 19:19:49 +0100

steam-runtime-tools (0.20190816.0-0+steamrt1.1) scout; urgency=medium

  [ Simon McVittie ]
  * inspect-library: Don't produce malformed JSON if the ABI is not known
  * library: Guard against not knowing missing or misversioned symbols
  * library: Set UNKNOWN_EXPECTATIONS issue if we lack a symbols file
  * bin: Check for shared libraries even if we don't know what to expect
  * system-info: Look for expectations in /usr/lib/steamrt by default
  * Add some mechanisms to facilitate design-for-test

  [ Ludovico de Nittis ]
  * Add checks for problems with the Steam Installation and the Runtime

 -- Simon McVittie <smcv@collabora.com>  Fri, 16 Aug 2019 12:38:22 +0100

steam-runtime-tools (0.20190806.0-0+steamrt1.1) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Enhance examples/system-info.c to show libraries and uinput capabilities
  * Add C argument `-D_GNU_SOURCE` for the whole project

  [ Simon McVittie ]
  * system-info: Avoid g_debug() interfering with machine-readable stdout
  * system-info: Move from examples/ to bin/ and install in its own package

 -- Simon McVittie <smcv@collabora.com>  Tue, 06 Aug 2019 17:47:36 +0100

steam-runtime-tools (0.20190802.0-0+steamrt1.1) scout; urgency=medium

  [ Simon McVittie ]
  * SrtSystemInfo: Document (lack of) thread-safety
  * Improve documentation

  [ Ludovico de Nittis ]
  * Add libraries check to SrtSystemInfo

 -- Simon McVittie <smcv@collabora.com>  Fri, 02 Aug 2019 13:49:46 +0100

steam-runtime-tools (0.20190801.0-0+steamrt1.1) scout; urgency=medium

  [ Ludovico de Nittis ]
  * Add inspect-library helper and wrapper

  [ Simon McVittie ]
  * Add a skeleton for SrtLibrary, representing a shared library
  * Add symbolic constants for the i386 and x86_64 ABIs
  * Locate libsteam-runtime-tools with dladdr1(), not by iterating link map
  * _srt_get_helpers_path: Adjust mapping from ${libdir} to ${prefix}
  * Add a script to wrap tests with valgrind
  * Don't build gtk-doc documentation if gtk-doc is too old
  * Install enums.h below ${includedir} as intended
  * Add missing enums.h to <steam-runtime-tools/steam-runtime-tools.h>
  * build: Ensure that enums.[ch] are generated before compiling examples
  * _srt_get_helpers_path: If in /lib, assume helpers are in /usr/libexec
  * test-utils: Add some missing test assertions etc.
  * d/tests: Log debug messages
  * d/tests: Mark gnome-desktop-testing to be skipped if not installable
  * debian: Enable Gitlab-CI
  * utils: Ensure that g_type_init() gets called
  * build: Allow C99 constructs
  * build: Disable -Wunused-local-typedefs
  * inspect-library: Treat "-" as meaning stdin
  * inspect-library: Add simple command-line parsing
  * inspect-library: Make memory management more obvious
  * inspect-library: Reuse a buffer between iterations
  * inspect-library: Allow just a symbol on a line, with no @
  * inspect-library: Add support for consuming deb-symbols(5) files
  * Add a skeleton for SrtSystemInfo

 -- Simon McVittie <smcv@collabora.com>  Thu, 01 Aug 2019 18:54:13 +0100

steam-runtime-tools (0.20190717.0-0+collabora1) upstream; urgency=medium

  * Initial release

 -- Simon McVittie <smcv@collabora.com>  Wed, 17 Jul 2019 12:59:02 +0100
