Files
qbz/packaging/flatpak/com.blitzfc.qbz.yml
T
vicrodh cb10d42b53 chore(flatpak): drop the org.freedesktop.secrets talk-name from the twin
Parity with the published Flathub manifest (repack flow, PR #49), which
already ships without it. The Flathub repo manifest is untouched.

km
2026-07-22 16:53:54 -06:00

96 lines
4.0 KiB
YAML

# Flatpak manifest — GitHub Releases bundle (network build).
#
# Rewritten 2026-07-02 for the Tauri -> Slint migration (v2.0): builds the
# crates/ workspace with the rust-stable SDK extension. The node SDK, the
# whole intltool/libdbusmenu/libayatana-appindicator module chain and the
# lib64 workaround are gone — the Slint tray is ksni (pure Rust over D-Bus),
# no C appindicator involved.
#
# The FLATHUB manifest (flathub/com.blitzfc.qbz repo) is the OFFLINE twin of
# this file (cargo-sources.json, no network); keep the two in sync when
# changing modules or finish-args. scripts/update-flathub.sh regenerates it.
app-id: com.blitzfc.qbz
runtime: org.gnome.Platform
runtime-version: '49'
sdk: org.gnome.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.rust-stable
# bindgen (aws-lc-sys et al.) needs libclang.
- org.freedesktop.Sdk.Extension.llvm20
command: qbz
finish-args:
- --share=ipc
- --share=network
- --socket=wayland
- --socket=fallback-x11
- --socket=pulseaudio
# Direct sound-device access (/dev/snd) for bit-perfect / exclusive
# ALSA output, matching native installs. Flatpak has no granular
# --device=snd; /dev/snd is only exposed via --device=all (same as
# Strawberry, mpv, and other bit-perfect audio apps). --device=all
# includes --device=dri (GPU), so the separate dri entry is dropped.
- --device=all
# org.freedesktop.ReserveDevice1 device-reservation names: lets QBZ ask
# WirePlumber/PipeWire to release the sound card cleanly before opening
# it exclusively (freedesktop audio-device reservation protocol). Owning
# a name implies talking to its current holder (same well-known name). #508
- --own-name=org.freedesktop.ReserveDevice1.*
# Native PipeWire access
- --filesystem=xdg-run/pipewire-0:ro
# Discord IPC socket for Rich Presence (#336).
# - The static path covers Discord installed natively (deb / rpm / AUR
# builds), which write the socket directly under $XDG_RUNTIME_DIR.
# - The :create permission on the Discord-Flatpak app dir lets us read
# the socket created by Discord-via-Flathub AND lay down our own
# $XDG_RUNTIME_DIR/discord-ipc-{0..9} symlinks pointing at it.
- --filesystem=xdg-run/discord-ipc-0
- --filesystem=xdg-run/app/com.discordapp.Discord:create
# User music library
- --filesystem=xdg-music
# Notifications and tray (ksni StatusNotifierItem)
- --talk-name=org.freedesktop.Notifications
- --talk-name=org.kde.StatusNotifierWatcher
# MPRIS media controls (own-name auto-granted: name contains appid)
- --talk-name=org.mpris.MediaPlayer2.*
modules:
- name: qbz
buildsystem: simple
build-options:
append-path: /usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/llvm20/bin
build-args:
- --share=network
env:
LIBCLANG_PATH: /usr/lib/sdk/llvm20/lib
# Memory tier for 16 GB builders: the qbz_ui rustc is the ~30 GB
# peak; single job + high codegen-units + opt 2 is the measured
# MIN-footprint combination. Binary symbols are stripped by the
# workspace [profile.release].
CARGO_INCREMENTAL: '0'
CARGO_BUILD_JOBS: '1'
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: '256'
CARGO_PROFILE_RELEASE_OPT_LEVEL: '2'
build-commands:
- cargo build --release --manifest-path crates/Cargo.toml -p qbz
- install -Dm755 crates/target/release/qbz /app/bin/qbz
- install -Dm644 packaging/flatpak/com.blitzfc.qbz.desktop /app/share/applications/com.blitzfc.qbz.desktop
- install -Dm644 packaging/flatpak/com.blitzfc.qbz.metainfo.xml /app/share/metainfo/com.blitzfc.qbz.metainfo.xml
- install -Dm644 LICENSE /app/share/licenses/com.blitzfc.qbz/LICENSE
- install -Dm644 packaging/icons/32x32.png /app/share/icons/hicolor/32x32/apps/com.blitzfc.qbz.png
- install -Dm644 packaging/icons/128x128.png /app/share/icons/hicolor/128x128/apps/com.blitzfc.qbz.png
- install -Dm644 packaging/icons/256x256.png /app/share/icons/hicolor/256x256/apps/com.blitzfc.qbz.png
sources:
- type: dir
path: ../..
skip:
- .git
- crates/target