Skip to content
Snippets Groups Projects
  1. Nov 20, 2020
  2. Nov 18, 2020
  3. Nov 17, 2020
  4. Oct 26, 2020
  5. Oct 01, 2020
  6. Sep 29, 2020
  7. Sep 25, 2020
  8. Sep 21, 2020
  9. Sep 09, 2020
  10. Sep 08, 2020
  11. Sep 04, 2020
  12. Sep 03, 2020
  13. Sep 02, 2020
    • Ludovico de Nittis's avatar
      Initial support for custom graphics provider path and Flatpak · d7ad67a2
      Ludovico de Nittis authored
      
      pressure-vessel had a few hard coded assumptions about the host system
      and where to look at for the graphics provider.
      
      For example it was assumed that the root was the same host system used
      by both pressure-vessel current environment (where pressure-vessel-wrap
      runs) and also later on by `bwrap`.
      
      But when we run pressure-vessel in a Flatpak container, the final
      `bwrap` command is expected to be executed against the real host system
      (mounted in `/run/host`, in Flatpak).
      
      Also when we are in a Flatpak container we might want to pick the
      graphics stack from the host system (`/run/host`), from the Flatpak
      container itself or it could even be a completely separate one.
      (T22373, T22371)
      
      Signed-off-by: default avatarLudovico de Nittis <ludovico.denittis@collabora.com>
      d7ad67a2
    • Ludovico de Nittis's avatar
      bwrap: Build arguments to bind /usr if already in a container · f81c2d57
      Ludovico de Nittis authored
      
      The filesystem that is providing /usr might not be mounted
      in the same place in the current namespace, and on the host
      system where bwrap will be run. If it isn't, we need
      to use one path to do file I/O when inspecting it, but pass
      a different path to bwrap.
      
      Signed-off-by: default avatarLudovico de Nittis <ludovico.denittis@collabora.com>
      f81c2d57
  14. Aug 20, 2020
  15. Aug 19, 2020
  16. Aug 18, 2020
    • Simon McVittie's avatar
      runtime: Always provide adverb at /run/pressure-vessel/pv-from-host · 220657c6
      Simon McVittie authored
      
      While we control /run, we might as well be consistent.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      220657c6
    • Simon McVittie's avatar
      adverb, wrap: Add --terminate-timeout, --terminate-idle-timeout options · 18bdc4b9
      Simon McVittie authored
      
      This will let us have the following logic when sharing a container
      between multiple commands using -launcher and -launch:
      
      * For setup commands, don't wrap the launched command in the adverb.
        If the setup command starts background processes, they'll continue
        to run. This matches how installscript commands have historically
        worked for Windows (and Wine/Proton) games in Steam: the setup
        command is launched with system(), and can leak background
        processes like wineserver.
      
      * For the main game, wait for all processes to exit, by wrapping
        the launched command in the adverb, with --subreaper only. This
        matches how native Linux games, and the main command of
        Windows/Wine/Proton games, have historically worked in Steam.
      
      * When all processes belonging to the main game have exited,
        the -launcher can exit, at which point the subreaper that wraps it
        can clean up any background processes from the setup commands.
      
      --terminate-idle-timeout can be used to wait a few seconds before
      sending SIGTERM, if desired.
      
      Because the adverb now blocks SIGCHLD, we need to unblock it before
      running the child process; otherwise the child process will inherit
      the blocked signal, breaking things like g_spawn_async().
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      18bdc4b9
  17. Aug 11, 2020
  18. Jul 29, 2020
  19. Jul 21, 2020
  20. Jul 09, 2020
  21. Jul 08, 2020
  22. Jun 23, 2020
  23. Jun 17, 2020
    • Simon McVittie's avatar
      runtime: Move pressure-vessel overrides into /usr · e1439c1a
      Simon McVittie authored
      
      Flatpak is not going to give us control over the root directory when
      using sub-sandboxing - the most we're likely to get is control over
      which directory is chosen to be /usr. Prepare for this by using
      /usr/lib/pressure-vessel/overrides instead of /overrides for the things
      we overwrite.
      
      To be nice to developers and steam-runtime-tools, put a symlink
      overrides -> usr/lib/pressure-vessel/overrides at the root, as a hint
      for where to look.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      e1439c1a
    • Simon McVittie's avatar
      runtime: Use pv_runtime_take_from_host() for ld.so · bf8396b5
      Simon McVittie authored
      
      In a mutable sysroot, overwrite ld.so with a symlink into /run/host.
      We overwrite both the interoperable path (to avoid long chains of
      symlinks in the common case) and the canonicalized path (to make sure
      nothing can end up finding the container's ld.so, which is incompatible
      with the libc we have dropped in).
      
      If building a long bwrap command-line, we have to mount over the
      canonicalized path, and just live with the fact that there will be
      a long chain of symlinks leading to it.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      bf8396b5
Loading