Skip to content

check-requirements: Improve detection of non-functional bwrap, add detection of non-functional flatpak-portal

Simon McVittie requested to merge wip/smcv/check-requirements into main
  • runtime: Rename _srt_runtime_check to _srt_runtime_check_ldlp

    This function is specifically about the LD_LIBRARY_PATH runtime (scout, or in theory heavy) and does not make sense for container runtimes.

  • steam: Allow skipping checks involving .desktop files

    This is a reasonably large chunk of code that we don't need to call into from check-requirements.

  • check-requirements: Use g_autoptr, etc. where possible

  • check-requirements: Use SrtContainerInfo instead of open-coding it

  • subprocess: Add a mechanism to find helpers in the ${bindir}

    We can use this to locate steam-runtime-launch-client, to detect whether Flatpak sandboxes have a working flatpak-portal.


  • container: Do a functional test on flatpak-portal subsandboxes

    This gives us some ability to diagnose what, if anything, is wrong with them. Obviously if the Steam UI doesn't start, we will not be able to put this information in Help -> Steam Runtime Diagnostics, but we can call into this from steam-runtime-check-requirements, or direct users to run steam-runtime-system-info via flatpak run --command=bash.


  • check-requirements: Detect several common Flatpak problems


  • bwrap: Add proper error-handling instead of just writing to the log

    This will allow us to use this bwrap detection from steam-runtime-system-info.

  • lib: Add a public SrtBwrapIssues enumeration

    This is not yet wired up to SrtSystemInfo, but should be in future.

  • check-requirements: Get more detailed information about why bwrap fails


  • bwrap: Pass SrtSubprocessRunner into _srt_check_bwrap()

  • bwrap: Use the SrtSubprocessRunner to test bwrap

    This lets us use various amenities of SrtSubprocessRunner, like applying a timeout and getting automatic debug output.

  • bwrap: Use SrtSubprocessRunner's environment

    This lets us supply mock environment variables during unit testing.

  • bwrap: Treat $BWRAP as specifying a system copy of bubblewrap

    This environment variable is not specific to pressure-vessel or to steam-runtime-tools, so it seems reasonable to prefer our known-good bundled copy. It can still be overridden with $PRESSURE_VESSEL_BWRAP.

  • bwrap: Add unit test coverage

  • subprocess: Factor out _srt_subprocess_runner_resolve_helpers_path()

  • bwrap: Derive pkglibexecdir from the SrtSubprocessRunner

  • system-info: Integrate bubblewrap functional checks into SrtContainerInfo

Edited by Simon McVittie

Merge request reports