Files
qbz/packaging/flatpak/com.blitzfc.qbz.yml
T
vicrodh 78aa6694c7 fix(flatpak): use appid as MPRIS dbus name, remove own-name permission
Change dbus_name from "qbz" to "com.blitzfc.qbz" so the MPRIS name
matches the appid pattern. This eliminates the need for the explicit
--own-name permission as Flatpak allows apps to own names under their
appid namespace automatically.

cc
2026-02-13 07:54:36 -06:00

190 lines
6.2 KiB
YAML

app-id: com.blitzfc.qbz
runtime: org.gnome.Platform
runtime-version: '49'
sdk: org.gnome.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.node20
- org.freedesktop.Sdk.Extension.rust-stable
command: qbz
finish-args:
- --share=ipc
- --share=network
- --socket=x11
- --socket=wayland
- --socket=pulseaudio
- --device=dri
# Standard user directories
- --filesystem=xdg-download
- --filesystem=xdg-music
- --filesystem=xdg-cache
- --filesystem=xdg-config
# External drives and network mounts (NAS support)
- --filesystem=/mnt
- --filesystem=/media
- --filesystem=/run/media
# Migration: Read-only access to old App ID data for one-time migration
# This allows copying user data from com.blitzkriegfc.qbz to com.blitzfc.qbz
# Can be removed in a future release after users have migrated
- --filesystem=~/.var/app/com.blitzkriegfc.qbz:ro
# Required for tray icon to be visible (Tauri writes icon to temp location)
- --filesystem=xdg-run/tray-icon:create
# Portals and notifications
- --talk-name=org.freedesktop.Notifications
- --talk-name=org.kde.StatusNotifierWatcher
- --talk-name=org.freedesktop.portal.Desktop
- --talk-name=org.freedesktop.portal.FileChooser
- --talk-name=org.mpris.MediaPlayer2.*
# OAuth browser authentication
- --talk-name=org.freedesktop.portal.OpenURI
modules:
# alsa-utils for better ALSA device names (aplay -L)
- name: alsa-utils
buildsystem: autotools
config-opts:
- --disable-alsamixer
- --disable-xmlto
- --with-udev-rules-dir=/app/lib/udev/rules.d
cleanup:
- /share/man
- /share/sounds
sources:
- type: archive
url: https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.12.tar.bz2
sha256: 98bc6677d0c0074006679051822324a0ab0879aea558a8f68b511780d30cd924
# intltool required for libdbusmenu
- name: intltool
buildsystem: autotools
cleanup:
- '*'
sources:
- type: archive
url: https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz
sha256: 67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd
# Dependency for libayatana-appindicator
- name: libdbusmenu
buildsystem: autotools
build-options:
cflags: -Wno-error
env:
HAVE_VALGRIND_FALSE: '#'
HAVE_VALGRIND_TRUE: ''
config-opts:
- --with-gtk=3
- --disable-dumper
- --disable-static
- --disable-gtk-doc
- --enable-introspection=no
- --disable-vala
cleanup:
- /include
- /lib/pkgconfig
- /lib/*.la
- /share/doc
- /share/libdbusmenu
sources:
- type: archive
url: https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz
sha256: b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a
- name: ayatana-ido
buildsystem: cmake-ninja
config-opts:
- -DENABLE_TESTS=NO
- -DCMAKE_INSTALL_LIBDIR=lib
cleanup:
- /include
sources:
- type: archive
url: https://github.com/AyatanaIndicators/ayatana-ido/archive/refs/tags/0.10.4.tar.gz
sha256: bd59abd5f1314e411d0d55ce3643e91cef633271f58126be529de5fb71c5ab38
- name: libayatana-indicator
buildsystem: cmake-ninja
config-opts:
- -DENABLE_TESTS=NO
- -DENABLE_IDO=YES
- -DENABLE_LOADER=NO
- -DCMAKE_INSTALL_LIBDIR=lib
cleanup:
- /include
- /lib/pkgconfig
- /share
sources:
- type: archive
url: https://github.com/AyatanaIndicators/libayatana-indicator/archive/refs/tags/0.9.4.tar.gz
sha256: a18d3c682e29afd77db24366f8475b26bda22b0e16ff569a2ec71cd6eb4eac95
- name: libayatana-appindicator
buildsystem: cmake-ninja
config-opts:
- -DENABLE_BINDINGS_MONO=NO
- -DENABLE_BINDINGS_VALA=NO
- -DENABLE_GTKDOC=NO
- -DCMAKE_INSTALL_LIBDIR=lib
cleanup:
- /include
- /lib/pkgconfig
sources:
- type: archive
url: https://github.com/AyatanaIndicators/libayatana-appindicator/archive/refs/tags/0.5.93.tar.gz
sha256: cbefed7a918a227bf71286246e237fcd3a9c8499b3eaac4897811a869409edf0
# Workaround: Freedesktop 25.08 cmake may install to lib64 despite CMAKE_INSTALL_LIBDIR
# Copy any libraries from lib64 to lib so they can be found at runtime
- name: fix-lib64
buildsystem: simple
build-commands:
- |
if [ -d /app/lib64 ]; then
mkdir -p /app/lib
cp -a /app/lib64/* /app/lib/ 2>/dev/null || true
# Also copy pkgconfig if it exists
if [ -d /app/lib64/pkgconfig ]; then
mkdir -p /app/lib/pkgconfig
cp -a /app/lib64/pkgconfig/* /app/lib/pkgconfig/ 2>/dev/null || true
fi
fi
# List what we have for debugging
echo "=== Contents of /app/lib ==="
ls -la /app/lib/ || echo "lib is empty"
echo "=== Contents of /app/lib64 ==="
ls -la /app/lib64/ 2>/dev/null || echo "lib64 does not exist or is empty"
- name: qbz
buildsystem: simple
build-options:
append-path: /usr/lib/sdk/node20/bin:/usr/lib/sdk/rust-stable/bin
build-args:
- --share=network
env:
npm_config_nodedir: /usr/lib/sdk/node20
build-commands:
- npm ci
- export PATH="$PWD/node_modules/.bin:$PATH" && npm run build
- export PATH="$PWD/node_modules/.bin:$PATH" && npm run tauri build -- --no-bundle
- install -Dm755 src-tauri/target/release/qbz-nix /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 src-tauri/icons/128x128.png /app/share/icons/hicolor/128x128/apps/com.blitzfc.qbz.png
# Install tray icon for StatusNotifierItem (symbolic icon for panel)
- install -Dm644 src-tauri/icons/tray.png /app/share/icons/hicolor/symbolic/apps/com.blitzfc.qbz-symbolic.png
- install -Dm644 src-tauri/icons/32x32.png /app/share/icons/hicolor/32x32/apps/com.blitzfc.qbz.png
sources:
- type: dir
path: ../..
skip:
- .git
- node_modules
- src-tauri/target
- .svelte-kit