Skip to content
Snippets Groups Projects
  1. May 11, 2021
  2. Apr 30, 2021
    • Simon McVittie's avatar
      runtime: Add support for creating runtime from a mtree(5) · 799b7931
      Simon McVittie authored
      
      At the moment we deploy the runtime from a giant tarball to avoid Steam
      downloader limitations, but that leads to a noticeable delay the first
      time we launch a game after a new runtime version has been downloaded.
      
      Now that the Steam download mechanism can deal better with larger
      numbers of smaller files, we're considering returning to the original
      design where the runtime depot contains unpacked files. However, the
      Steam download mechanism doesn't preserve permissions, modification
      times, or filenames that differ only by case, and has not always
      preserved empty directories, so we need a way to deal with all of
      those things.
      
      By reading a manifest written in a subset of the BSD mtree(5) format,
      we can create directories and symlinks, and set permissions modification
      times on regular files. As a bonus, it's actually slightly faster to
      duplicate a runtime with hard-links (--copy-runtime mode) by reading the
      manifest than by reading the actual directory tree, because the manifest
      is more likely to be contiguous on disk.
      
      In principle the mtree(5) manifest could also be used to validate that
      the runtime content has not become corrupted by checking files against
      their sha256sums. This isn't implemented here (and it would have to be
      done only on demand rather than routinely, because it would be slow),
      but the parser does at least read the sha256.
      
      In the tests, we now need to remove the mtree manifest when copying
      and editing a runtime. When we edit a runtime in-place, it no longer
      conforms to the manifest, so this can't necesarily be expected to work.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      799b7931
  3. Mar 16, 2021
  4. Feb 23, 2021
  5. Feb 22, 2021
  6. Feb 04, 2021
    • Simon McVittie's avatar
      pressure-vessel: Accept runtime with or without ./files · 5570e4a8
      Simon McVittie authored
      
      Previously, if we were using a Flatpak-style runtime, the argument
      to --runtime= had to be its ./files subdirectory. Now we accept the
      top-level directory as an alternative.
      
      This will make it more straightforward for pressure-vessel-wrap to
      take responsibility for unpacking and deploying runtimes that are
      shipped as a tarball, which is currently done in the SteamLinuxRuntime
      shell scripts, resulting in error handling and locking being less
      robust.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      5570e4a8
  7. Jan 05, 2021
  8. Dec 14, 2020
    • Simon McVittie's avatar
      tests: Don't assert that "extra" DRI drivers are in the container · 98f35c81
      Simon McVittie authored
      
      These are drivers for which our best guess is that the native loader
      would not actually load them. We want to include them in
      steam-runtime-system-info's diagnostic output in case we are wrong, but
      we don't want to include them in the container: if our guess is correct,
      then the host system doesn't actually load them, and the worst-case
      scenario is that they are somehow broken, in which case adding them to
      the search path might *break* the container.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      98f35c81
  9. Dec 11, 2020
  10. Dec 03, 2020
  11. Nov 24, 2020
  12. Sep 09, 2020
  13. Sep 08, 2020
  14. Sep 07, 2020
  15. Aug 19, 2020
  16. Jul 23, 2020
  17. Jul 21, 2020
  18. Jul 09, 2020
  19. Jun 23, 2020
  20. Jun 17, 2020
Loading