Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Discussion options

This page is mainly designed to enable packager of Flatpak extension for OBS Studio to be kept up to date with changes done to the manifest that might affect extensions.

This page will also:

  • Explain manifest design decision (e.g. sandbox holes).
  • List notable disparities from the Flatpak against the PPA (Ubuntu) build.
  • Document some things about packaging OBS Studio plugins as Flatpak

Design and choices

Flathub, Flathub Beta and Branch

We publish OBS Studio on two Flatpak repos:

  • Flathub, only stable releases on the stable branch
  • Flathub Beta, from beta to stable releases on the beta branch

Flatpak relies on the concept of branches, beware this is not 1:1 analogous to a software version.

Runtime

Like any Flatpak on Flathub, OBS Studio is built over a Flatpak runtime. Each runtime (a.k.a. platform) is paired with a SDK which contains development and debugging tooling, users usually only install runtime.

Identifier triples will be used to enumerates runtime and SDK used for OBS Studio.

Flathub Flathub Beta Master
Runtime org.kde.Platform//6.8 org.kde.Platform//6.8 org.kde.Platform//6.8
Sdk org.kde.Sdk//6.8 org.kde.Sdk//6.8 org.kde.Sdk//6.8
Based on org.freedesktop.Sdk//24.08 org.freedesktop.Sdk//24.08 org.freedesktop.Sdk//24.08

Static permissions

The ecosystem around Wayland, PipeWire, Flatpak and XDG Desktop Portal can not cover every use-case 0-day, static permission were created as temporary accommodation until dynamic/portal based solutions are designed and implemented on the desktop and application side.

Those permissions are also known as "sandbox holes" since they also get around the sandbox and defeat its purpose.

More documentation about them can be found in Flatpak documentation.

Reasoning behind some permissions:

  • --socket=pulseaudio enables access to host PulseAudio server
    • Will be removed1 once we can replace PulseAudio-based features with more sandbox-friendly solutions
  • --device=all enables access to V4L2 devices (e.g. webcam) and DRI devices
    • Could be replace by --device=dri once V4L2 features are completely superseded1 with Portal-based features
  • --share=ipc required for X11 support
  • --filesystem=xdg-run/pipewire-0 is required for JACK features that are through pipewire-jack
    • Will be removed1 once we can replace it with a more sandbox-friendly solution
  • --filesystem=host is needed since OBS Studio has not migrated to more Portal-friendly way to handle files
  • --talk-name=org.kde.StatusNotifierWatcher is needed for tray icons support
  • --talk-name=org.freedesktop.Flatpak is needed to enable V4L2 virtual camera (modprobe call)
    • Will be removed1 once we can replace it with a more sandbox-friendly solution
  • --talk-name=org.a11y.Bus enables accessibility support
  • --system-talk-name=org.freedesktop.Avahi remnants of the original unofficial manifest

Adding more "sandbox holes" (and features that relies on them) is not planned but we are aware that some OBS Studio plugins rely on some of them and sometimes ask the user of the Flatpak to modify its permission to add some which is not officially supported.

Flatpak extensions

OBS Studio Flatpak support two extension endpoints:

1.com.obsproject.Studio.Plugin

This is the endpoint that packager of OBS Studio plugins will use.

Endpoint version supported:

Flathub Flathub Beta
App branch (stable) App branch (beta)

Note

Flatpak does not have a automatic branch following feature so for now any plan to enable use an endpoint version per ABI bump is not user-friendly enough.

This would allow to use the same branch on Flathub and Flathub beta if there is no ABI bump.

2.org.freedesktop.LinuxAudio.Plugins

This is an endpoint to enable audio plugins on a Flatpak. In OBS Studio case, this is for enabling VST 2 plugin.

The supported endpoint version is usually identical to the underlying org.freedesktop.Sdk branch.

Flathub Flathub Beta
24.08 24.08

Warning

Flatpak does not have a automatic branch following feature which unfortunately require users to have to manually install the extensions for the right branch.

Feature disparities

Some feature have been disabled have been disabled for various reasons:

  • ALSA features are disabled since the first unofficial Flatpak build, the reasoning is likely that ALSA is not and will never be accessible from inside the sandbox
  • VLC source is disabled since it would be a maintenance burden to provide a complete build from source in the Flatpak
  • DeckLink features are disabled due to the fact that the required libraries can not be provided to the user even with the extra data feature (no stable download link).

OBS Studio and audio plugins

While in non-Flatpak installation of OBS Studio, users could install plugins inside their config folder and VSTs in "standardized" folders.

This method of installation is not supported for the Flatpak. Only Flatpak extensions are supported.

OBS Studio plugin packaging (WIP)

Note

While submitting/updating your plugins on Flathub, you likely get test builds those will not work since we do not support test as endpoint version.

This could change with automatic branch following feature, to allow test alongside the ABI version.

  • Use com.obsproject.Studio as runtime and the SDK in use by the Flathub build
  • Always prefer to build from source and do not repackage pre-compiled binaries meant for another Linux distribution
    • Since libobs API is GPL-2.0-or-later any plugin should have their source available online
  • If the plugin is hardcoded with /usr as prefix, it can be patched but also to try to upstream a fix
  • Keep up with runtime/SDK changes to avoid potential ABI break and plugins not loading in OBS Studio, this page is meant for that by posting comments about incoming changes so you can get notified.

Footnotes

  1. A cycle of deprecation will happen before complete removal 2 3 4

You must be logged in to vote

Replies: 1 comment

Comment options

tytan652
Mar 15, 2025
Collaborator Author

Runtime change:

The manifest has been updated to org.kde.Sdk//6.8 (based on org.freedesktop.Sdk//24.08) on master.

It is highly recommended for plugin packager to switch to the new SDK when the next stable version of OBS Studio is published to avoid any kind of ABI issue.

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant
Morty Proxy This is a proxified and sanitized view of the page, visit original site.