<div dir="ltr">My Flatpak package, com.moonlight_stream.Moonlight [0], is built using the org.kde.Platform//5.12<br>runtime, which itself is built on org.freedesktop.Platform//18.08. I'm using VAAPI acceleration<br>in my application which requires the org.freedesktop.Platform.VAAPI.Intel//18.08 extension to<br>provide the Intel VAAPI driver.<br><br>Users noticed that my package broke in a recent 'flatpak update' and I traced the cause to a new<br>build of org.freedesktop.Platform.VAAPI.Intel//18.08. This change [1] upgraded the VAAPI driver<br>from version 2.2 to 2.3. The new driver appears to require a new version of libva, which was also<br>committed [2] to the org.freedesktop.Platform//18.08 repo.<br><br>The breakage looks like the following:<br>libva info: VA-API version 1.1.0<br>libva info: va_getDriverName() returns 0<br>libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so<br>libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/intel-vaapi-driver/i965_drv_video.so<br>libva error: /usr/lib/x86_64-linux-gnu/dri/intel-vaapi-driver/i965_drv_video.so has no function __vaDriverInit_1_0<br><br>Rolling back org.freedesktop.Platform.VAAPI.Intel//18.08 to the previous build (06d7699cc740)<br>fixes the issue. Based on some digging, it looks like the latest build of org.kde.Platform's<br>runtime platform, org.freedesktop.Platform, gets baked into the org.kde.Platform during the<br>build process. As a result, I don't get the org.freedesktop.Platform changes I need to use the<br>new version of org.freedesktop.Platform.VAAPI.Intel until the KDE runtime maintainer decides<br>to build the runtime again.<br><br>$ ls org.freedesktop.Platform/x86_64/18.08/active/files/lib/x86_64-linux-gnu/ | grep libva<br>libva-drm.so.2<br>libva-drm.so.2.400.0<br>libva.so.2<br>libva.so.2.400.0<br>libva-wayland.so.2<br>libva-wayland.so.2.400.0<br>libva-x11.so.2<br>libva-x11.so.2.400.0<br><br>$ ls org.kde.Platform/x86_64/5.12/active/files/lib/x86_64-linux-gnu/ | grep libva<br>libva-drm.so.2<br>libva-drm.so.2.100.0<br>libva.so.2<br>libva.so.2.100.0<br>libva-wayland.so.2<br>libva-wayland.so.2.100.0<br>libva-x11.so.2<br>libva-x11.so.2.100.0<br><br>If my theory is correct, the situation should resolve when the org.kde.Sdk//5.12 build auto-<br>publishes. Unfortunately, I wasn't able to test that theory because installing the test build<br>flatpakref causes flatpak (flatpak-1.2.3-2.fc29.x86_64) to assert:<br><br>$ flatpak install <a href="https://dl.flathub.org/build-repo/133/org.kde.Sdk.flatpakref">https://dl.flathub.org/build-repo/133/org.kde.Sdk.flatpakref</a><br>**<br>flatpak:ERROR:app/flatpak-main.c:700:flatpak_run: assertion failed: (success || error)<br>Aborted (core dumped)<br><br>I would like to avoid this happening again in the future, if possible. I did not expect that<br>the FreeDesktop team would break the ABI with their runtime plugins without changing the runtime<br>version. Was my expectation wrong or was did this change break the runtime version contract?<br><br>Is it possible for these "intermediate" runtimes like org.kde.Platform to share the files with<br>the runtime they depend on, so they are updated as the base runtime changes without needing a<br>new build?<br><br>Regards,<br>Cameron<br><br>[0]: <a href="https://github.com/flathub/com.moonlight_stream.Moonlight">https://github.com/flathub/com.moonlight_stream.Moonlight</a><br>[1]: <a href="https://gitlab.com/freedesktop-sdk/freedesktop-sdk/commit/2403d056fef00585bff66389f3b040a74ad8b0e6">https://gitlab.com/freedesktop-sdk/freedesktop-sdk/commit/2403d056fef00585bff66389f3b040a74ad8b0e6</a><br>[2]: <a href="https://gitlab.com/freedesktop-sdk/freedesktop-sdk/commit/ded3364f80e621492a16e0cfb6b4ad0e051199b4">https://gitlab.com/freedesktop-sdk/freedesktop-sdk/commit/ded3364f80e621492a16e0cfb6b4ad0e051199b4</a></div>