mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-26 19:46:58 -06:00
* egui037-20261022: migrate DeckCraft to egui 0.37 Preserve current-main document and PDF behavior alongside the reviewed input, capture, font, ribbon and notice-packaging migration. Validation: cargo xtask ci passed all eight stages, with 1,877 workspace tests and three doctests passed, six tests ignored, strict native lint and 23 WASM crates checked. Native GUI, platform and performance qualification remains separate. * E21: restore Latin coverage and enforce required font inputs * Fix migration review findings in font validation and UI controls * M-egui037: document UI lifecycle and regression contracts
69 lines
3.3 KiB
YAML
69 lines
3.3 KiB
YAML
# Flatpak manifest for DeckCraft, ready for a Flathub submission.
|
|
#
|
|
# Flatpak builds run offline, so the crate sources must be vendored first. From the repo root:
|
|
#
|
|
# curl -fsSLO https://raw.githubusercontent.com/flatpak/flatpak-builder-tools/master/cargo/flatpak-cargo-generator.py
|
|
# python3 flatpak-cargo-generator.py Cargo.lock -o packaging/linux/flatpak/cargo-sources.json
|
|
# flatpak-builder --user --install --force-clean build-flatpak packaging/linux/flatpak/ai.storyteller.deckcraft.yml
|
|
# flatpak run ai.storyteller.deckcraft
|
|
#
|
|
# For Flathub, replace the `dir` source with a `git` source pinned to a release tag and commit.
|
|
# The release's .flatpak bundles are built from ai.storyteller.deckcraft.bundle.yml instead (it
|
|
# repackages the Linux tarball); keep runtime-version and finish-args identical in both.
|
|
id: ai.storyteller.deckcraft
|
|
runtime: org.freedesktop.Platform
|
|
runtime-version: '25.08'
|
|
sdk: org.freedesktop.Sdk
|
|
sdk-extensions:
|
|
- org.freedesktop.Sdk.Extension.rust-stable
|
|
command: deckcraft
|
|
finish-args:
|
|
# Display: Wayland first; X11 only when no Wayland compositor is running.
|
|
- --socket=wayland
|
|
- --socket=fallback-x11
|
|
# X11 shared memory (MIT-SHM). Without it the X11 fallback is slow or fails.
|
|
- --share=ipc
|
|
# GPU access for the wgpu renderer (Vulkan, or GL as a fallback).
|
|
- --device=dri
|
|
# Sound for audio and video in slide shows (cpal over ALSA, routed to PulseAudio/PipeWire by
|
|
# the runtime's ALSA plugin).
|
|
- --socket=pulseaudio
|
|
# Open/Save dialogs go through the file-chooser portal (rfd) and drag-and-drop through the
|
|
# document portal, so picked files work anywhere without broad filesystem access. Documents is
|
|
# granted so decks passed by path (the command line, Open Recent) work in the usual place.
|
|
- --filesystem=xdg-documents
|
|
# Deliberately not granted: network (the optional --control server listens on 127.0.0.1 in
|
|
# the sandbox; `flatpak override --user --share=network ai.storyteller.deckcraft` exposes it to
|
|
# host agents) and home/host filesystem access.
|
|
build-options:
|
|
append-path: /usr/lib/sdk/rust-stable/bin
|
|
modules:
|
|
- name: deckcraft
|
|
buildsystem: simple
|
|
build-options:
|
|
env:
|
|
CARGO_HOME: /run/build/deckcraft/cargo
|
|
CARGO_NET_OFFLINE: 'true'
|
|
build-commands:
|
|
- cargo --offline build --release --locked -p deckcraft
|
|
- install -Dm755 target/release/deckcraft /app/bin/deckcraft
|
|
- install -Dm644 NOTICE /app/share/doc/deckcraft/NOTICE
|
|
- install -Dm644 packaging/linux/ai.storyteller.deckcraft.desktop /app/share/applications/ai.storyteller.deckcraft.desktop
|
|
- install -Dm644 packaging/linux/ai.storyteller.deckcraft.mime.xml /app/share/mime/packages/ai.storyteller.deckcraft.xml
|
|
- mkdir -p /app/share/icons && cp -R assets/app-icon/hicolor /app/share/icons/
|
|
- >-
|
|
version=$(awk '/^\[/{p=($0=="[workspace.package]");next} p&&$1=="version"{gsub(/[" ]/,"",$3);print $3;exit}' Cargo.toml);
|
|
install -d /app/share/metainfo;
|
|
sed -e "s/@VERSION@/$version/" -e "s/@DATE@/$(date -u +%Y-%m-%d)/"
|
|
packaging/linux/ai.storyteller.deckcraft.metainfo.xml.in > /app/share/metainfo/ai.storyteller.deckcraft.metainfo.xml
|
|
sources:
|
|
- type: dir
|
|
path: ../../..
|
|
skip:
|
|
- target
|
|
- dist
|
|
- corpus
|
|
- build-flatpak
|
|
- .flatpak-builder
|
|
- cargo-sources.json
|