Hi everyone,
The Freedesktop runtime currently includes the
org.freedesktop.Platform.openh264
extension, which provides Cisco’s
libopenh264 binary releases.
Due to licensing restrictions, these binaries are distributed unmodified
via Flatpak’s extra-data mechanism; meaning they are downloaded directly from Cisco to end user’s machines at install time.
The extension is defined in the runtime manifest and is automatically
installed alongside the Freedesktop, GNOME, or KDE runtimes enabling
H.264 encoding and decoding for applications.
Recently, a high-severity security vulnerability was discovered in
libopenh264, affecting versions 2.5.0 and earlier.
Unfortunately, the Freedesktop 23.08 runtime is locked to libopenh264
version 2.2.0, and upgrading to a fixed version is not possible due to
multiple ABI breaks and SONAME bumps upstream. Normally, we would
backport security fixes to maintain compatibility, but due to licensing
and redistribution restrictions this approach is not an option.
Given the circumstances, we decided to drop the extension from the
runtime manifest in an upcoming 23.08 release scheduled for April 2025.
There will be an additional notice in the release notes announcing this.
This means a portion of apps will loose H.264 playback support once the
runtime update reaches users. There will be no crashes as a stub library
is included in the runtime itself.
Since this breaks the stability and ABI guarantees offered by the stable
branches of the Freedesktop runtime, we are announcing a month in
advance to give app developers and app maintainers time to adjust to
this change.
If your application is using the Freedesktop 23.08 runtime or a
runtime based on 23.08 i.e. GNOME 46, KDE 5.15-23.08 and 6.7, please
consider adding the ffmpeg-full
, extension to your app’s manifest if
it is not already present.
This extension can provide support for H.264 playback through
ffmpeg’s internal decoder.
no-autodownload: false
will make the extension auto-installed when
installing the app but you can also omit that, in which case, users can
manually install the extension.
add-extensions:
org.freedesktop.Platform.ffmpeg-full:
version: '23.08'
directory: lib/ffmpeg
add-ld-path: .
no-autodownload: false
cleanup-commands:
- mkdir -p ${FLATPAK_DEST}/lib/ffmpeg
If you are unable to use the ffmpeg-full
extension, you can also add
the openh264 extension to your app’s manifest. Please note that it will
contain known security issues and will no longer be supported by us.
add-extensions:
org.freedesktop.Platform.openh264:
version: 2.2.0
directory: lib/openh264
add-ld-path: extra
no-autodownload: false
cleanup-commands:
- mkdir -p ${FLATPAK_DEST}/lib/openh264/extra
You can also do version: 2.5.1
instead of 2.2.0 but you will have to recompile your app against the new openh264 ABI manually.
Thanks!
Freedesktop SDK developers