Skip to content
Snippets Groups Projects
  1. Oct 24, 2023
  2. Oct 13, 2023
  3. Oct 12, 2023
  4. Oct 11, 2023
  5. Oct 10, 2023
    • Simon McVittie's avatar
      pv-runtime: Duplicate symlinks in /etc, /var in the interpreter root · 5e0f8520
      Simon McVittie authored
      
      This allows them to point to files that might be virtualized by emulators
      like FEX-Emu. When running x86 code on ARM under FEX-Emu, we have to
      populate the container's real /usr with ARM libraries, and populate
      $FEX_ROOTFS/usr with x86 libraries; otherwise, FEX-Emu itself, which is
      a dynamically-linked ARM executable, cannot work.
      
      /etc/os-release is canonically a symlink to ../usr/lib/os-release, but
      if we rely on FEX-Emu reading /etc/os-release, we have a problem: it
      will dereference the symlink and read the real /usr, which contains a
      /usr/lib/os-release describing the real (ARM) operating system.
      
      However, if we create this symlink in the FEX_ROOTFS, when an x86
      process dereferences /etc/os-release, FEX-Emu will follow the symlink
      to $FEX_ROOTFS/usr/lib/os-release, which describes the container runtime
      (in practice soldier or sniper) as desired. Create both /etc/os-release
      and $FEX_ROOTFS/etc/os-release, so that both ARM and x86 code do the
      right thing.
      
      We could in principle get the same situation with other symlinks in /etc
      or /var, so do this uniformly with all members of /etc and /var: if they
      are symlinks, we create the symlink in both / and $FEX_ROOTFS.
      
      steamrt/tasks#342
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      5e0f8520
    • Simon McVittie's avatar
      Merge branch 'wip/sr623-pulse-default' into 'main' · 1953b1eb
      Simon McVittie authored
      pv-runtime: Use a closer match for 99-pulseaudio-default.conf
      
      See merge request !597
      1953b1eb
  6. Oct 06, 2023
  7. Oct 05, 2023
  8. Oct 04, 2023
    • Simon McVittie's avatar
      pv-runtime: Use a closer match for 99-pulseaudio-default.conf · 6315238a
      Simon McVittie authored
      `pcm.!default pulse` assumes that a device named `pulse` already exists
      in the configuration (which it might, but equally it might not) and
      overwrites (because of the `!`) the definition of the `default` device
      with an alias for `pulse`, which could be written as
      
          pcm_devices["default"] = pcm_devices["pulse"]
      
      in a somewhat more conventional language.
      
      In contrast to that, `pcm.!default { type pulse }` overwrites the
      definition of the `default` device with a newly-defined device whose
      *type* is `pulse`, more like this pseudocode:
      
          pcm_devices["default"] = new PcmDevice(type="pulse")
      
      The latter is what `99-pulseaudio-default.conf.example` actually does,
      and therefore what the fdo runtime's `99-pulseaudio-default.conf`
      actually does (because it's just a copy of
      `99-pulseaudio-default.conf.example`, see
      https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/commit/870889cdde734557298b8e0e4506e275cacb4f90
      for the precise implementation).
      
      In pressure-vessel we write this to `/etc/asound.conf` rather than into
      `/etc/alsa/conf.d/` because very old versions of libasound like the one
      in Steam Runtime 1 'scout' only supported the former and not the latter,
      but otherwise we intend to mimic what the fdo runtime does, so let's
      mimic it a little closer. This should make games and other programs
      that output via libasound, like Shadowrun Returns and `aplay`, more
      reliable in the container.
      
      One other minor divergence from `99-pulseaudio-default.conf.example`
      is that we don't set the human-readable name
      `Default ALSA Output (currently PulseAudio Sound Server)` on the
      device, which seems a bit much for a targeted fix.
      
      Thanks: Nozomi Miyamori
      Resolves: https://github.com/ValveSoftware/steam-runtime/issues/623
      
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      6315238a
    • Simon McVittie's avatar
      tests: Stop assuming libcrypt will be pulled into a scout container · d6f8bc11
      Simon McVittie authored
      
      This is not guaranteed to be the case now that we are treating libcrypt
      as potentially a separate library, which is necessary to support
      use of libxcrypt.
      
      Fixes: 81d0099a "Merge libcapsule/v0.20230928.0"
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      d6f8bc11
  9. Sep 28, 2023
  10. Sep 27, 2023
Loading