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 - org.freedesktop.Sdk.Extension.llvm20 command: qbz finish-args: - --share=ipc - --share=network - --socket=wayland - --socket=fallback-x11 - --socket=pulseaudio - --device=dri # Native PipeWire access - --filesystem=xdg-run/pipewire-0:ro # User music library - --filesystem=xdg-music # Required for tray icon visibility in Flatpak sandbox - --filesystem=xdg-run/tray-icon:create # Notifications and tray - --talk-name=org.freedesktop.Notifications - --talk-name=org.kde.StatusNotifierWatcher # System keyring (GNOME Keyring, KDE Wallet) for credential storage - --talk-name=org.freedesktop.secrets # MPRIS media controls (own-name auto-granted: name contains appid) - --talk-name=org.mpris.MediaPlayer2.* modules: # 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:/usr/lib/sdk/llvm20/bin build-args: - --share=network env: npm_config_nodedir: /usr/lib/sdk/node20 LIBCLANG_PATH: /usr/lib/sdk/llvm20/lib build-commands: - npm ci - export PATH="$PWD/node_modules/.bin:$PATH" && npm run build # Flathub policy: no competing auto-updaters. Disable the `updater` # Cargo feature so tauri-plugin-updater / tauri-plugin-process are # not linked into the Flatpak binary. - export PATH="$PWD/node_modules/.bin:$PATH" && npm run tauri build -- --no-bundle -- --no-default-features - install -Dm755 src-tauri/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 src-tauri/icons/128x128.png /app/share/icons/hicolor/128x128/apps/com.blitzfc.qbz.png - install -Dm644 src-tauri/icons/256x256.png /app/share/icons/hicolor/256x256/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