Files

Flatpak Build Configuration - OBS LocalVocal

Flatpak manifest for the OBS LocalVocal plugin using system dependencies where possible to reduce build time.

📁 Files

Flatpak Configuration

File Description
com.obsproject.Studio.Plugin.LocalVocal.yaml ⚙️ Main Flatpak manifest
com.obsproject.Studio.Plugin.LocalVocal.metainfo.xml 📋 AppStream metadata
cargo-sources.json 📦 Vendored Rust dependencies
build.sh 🔨 Build script
patches/ 🩹 Patches for USE_SYSTEM_* CMake options

🎯 Quick Start

Build the plugin

# Using build script
./flatpak/build.sh

# Or manually with flatpak-builder
flatpak-builder --force-clean --repo=repo build \
  flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml

📊 Key Features

SDK and Dependencies

Component Version Notes
SDK org.freedesktop.Sdk//25.08 Same as OBS Studio
Rust SDK extension (1.94.0) Saves 15-20 min build time
ICU SDK system library Saves 8-10 min build time

Library Versions

All libraries use versions with native CMake 3.x/4.x support:

  • OpenBLAS v0.3.32 (CMake 3.16+)
  • OpenCL-Headers v2025.07.22 (CMake 3.16+)
  • CTranslate2 v4.7.1 (CMake 3.7+)
    • cpu_features v0.10.1 (CMake 3.13+)
    • spdlog v1.17.0 (CMake 3.10+)
  • whisper.cpp v1.8.2
  • SentencePiece v0.2.1

🔍 Technical Details

Build Architecture

com.obsproject.Studio (runtime)
├── org.freedesktop.Sdk//25.08
│   ├── sdk-extensions
│   │   └── rust-stable (1.94.0)
│   └── System libraries
│       └── ICU (system)
└── LocalVocal Extension
    ├── Compiled modules
    │   ├── OpenBLAS
    │   ├── whisper.cpp
    │   ├── CTranslate2
    │   ├── SentencePiece
    │   └── OpenCL-Headers
    └── Prebuilt binaries
        ├── whispercpp-prebuilt
        └── onnxruntime-prebuilt

Applied Patches

Patches in patches/ add CMake options to use system libraries:

  • 0001-BuildCTranslate2-use-system-option.patchUSE_SYSTEM_CTRANSLATE2
  • 0002-BuildSentencepiece-use-system-option.patchUSE_SYSTEM_SENTENCEPIECE

🧪 Testing

Verify build environment

# Check Flatpak configuration
flatpak remotes --show-details
flatpak list --runtime

# Verify SDK extension availability
flatpak search org.freedesktop.Sdk.Extension.rust-stable

Test build with timing

# Full build with timing
time flatpak-builder --force-clean build \
  flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml

# Partial build (stop at specific module)
flatpak-builder --force-clean --stop-at=obs-localvocal build \
  flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml

🐛 Troubleshooting

Common Issues

Error Solution
Rust extension not found flatpak install flathub org.freedesktop.Sdk.Extension.rust-stable//25.08
CMake version errors Update library versions in manifest (already done)
UIC wrapper fails Check Qt installation in SDK with flatpak-builder --run ... which uic

Debug build

# Verbose build
flatpak-builder -v --force-clean build manifest.yaml

# Debug specific module
flatpak-builder --force-clean --stop-at=MODULE build manifest.yaml
flatpak-builder --run build manifest.yaml bash

📜 License

See the LICENSE file in the project root.


Last updated: March 24, 2026