Add libgamemode
Context
Over in Flatpak, the situation for gamemode is the following:
- a shared-module is no bueno, as 32-bit builds will not work with it
- a Platform extension isn't worth going through the work for
- every app that wants to use gamemode needs to ship it itself, and build 32-bit explicitly if applicable
And jamming gamemode into arbitrary apps isn't an uncommon thing to do. But having gamemode shipped separately, tens of times, isn't ideal.
All of this is fixable if the Platform just bundles libgamemode. There hasn't been, and doesn't need to be, an API change for the client-side of gamemode since one year ago (2022). Shipping it in the Platform should be fine, even with ABI concerns.
Will need to stay out of 23.08 for ABI stability reasons, but can land in master and 24.08 when that's done.
Description
(check for inspiration from systemd split or pipewire split)
-
Rename current gamemode.bst to gamemode-base.bst -
Domain split to support having a new gamemode.bst which has everything and libgamemode.bst which has only gamemoderun and support libraries -
Introduce gamemode-manifest.bst and ensure CPE data is correct so CVE checker remains working -
Include libgamemode.bst into platform.bst. Add gamemode.bst into tests/check-sdk.bst
Acceptance Criteria
Run an arbitrary command in the Platform with gamemoderun %command%
and ensure it's registered with the gamemode daemon.
Edited by Seppo Yli-Olli