Skip to content

pv-runtime: If using host libxkbcommon, try to use host libxkbcommon-x11

Simon McVittie requested to merge wip/task530 into main
  • pv-runtime: Generalize code to capture libraries related to glibc

    Previously this was part of pv_runtime_collect_libc_family(), but in fact it's equally applicable for other libraries.

    For example, if we are using the host's libxkbcommon.so.0, we'll also want the host's libxkbcommon-x11.so.0 if at all possible, because libxkbcommon-x11 uses private data structures from libxkbcommon and will crash if they are not sufficiently similar.

    steamrt/tasks#530

  • pv-runtime: If using host libxkbcommon, try to use host libxkbcommon-x11

    libxkbcommon is not really a graphics driver dependency as such, but it can end up being pulled in by graphics stack components, for example MangoHUD 0.7.2.

    libxkbcommon-x11 looks into private data structures from libxkbcommon, which is a reasonable thing to do since they come from the same source code and are upgraded at the same time, but can cause crashes if we pick up one but not the other from the graphics stack provider; so if we pick up libxkbcommon as a dependency of MangoHUD, we also need to take the matching libxkbcommon-x11 if it exists.

    If the graphics stack provider has libxkbcommon but not libxkbcommon-x11, there's really nothing we can do about that, so we will have to combine this change with trying harder to get Steam client packaging to pull in libxkb-common-x11.so.0.

    steamrt/tasks#530

/cc @refi64 @denittis

Merge request reports